2012-03-08 100 views
1

我有一些混乱的情况。我的公司使用svn,但是我在我的Windows和OSX计算机上使用git-svn进行本地开发。我试图让Windows机器能够从OSX笔记本电脑上进行推送和拉出,并且在拉OSX本地分支时我点击了“没有普通提交”。 基本事实git-svn在windows和osx上产生不同的哈希值

  • Windows和OSX两者都有一个git-svn的回购跟踪SVN主干
  • 两个回购协议是最新的更新和显示修订版10作为最新的日志信息
  • git log将消息显示为相同的作者哈希,但提交哈希是不同的

这是什么导致“没有公共提交”的问题,但为什么哈希值不同?如果这是行结束的问题,或者区分大小写的文件名问题,我该如何让git找到差异。

注意:这是一个巨大的(1.8GB)回购,所以我可能无法手动修复或比较文件。

+0

所有提交哈希不同,或只是最新的?你可以在两个仓库中运行'git rev-list'来获取提交散列列表。 – 2012-03-08 01:47:05

+0

我猜所有的都不同于“不共同承诺”位。用* first * commit(没有父母的那个)的sha尝试'git cat-file -p $ SHA'。树是唯一的区别吗?如果是这样,你可以使用'git ls-tree -r $ SHA'来获取树中每个条目的哈希值,并且可以比较两个条目中的值,看看有什么不同。 – 2012-03-08 01:51:56

+0

Kevin,这两个版本库的第一次提交有不同的svn版本。这意味着,如果Win开始@ 5,并且OSX开始@ 10,Win @ 10将会有一个父项,而OSX @ 10将不会,这样就会抛出散列并破坏下游的所有内容。这可能是问题所在。 Git固有的抗篡改手段意味着我不能从Win中删除早期的历史记录,因此它也从10开始。我必须重新检查,对吗? – 2012-03-08 02:08:51

回答

0

Kevin指出了一些调查工具,我意识到我的svn分支开始跟踪不同的svn版本。这是问题的原因,我只是重新下载了存储库,而不是试图弄清楚如何将一个分支嫁接到另一个分支(浪费计算机时间过夜,而不是白天的脑时间)。谢谢凯文