神秘的git行为

时间:2011-04-12 12:33:24

标签: windows git cygwin git-svn

我已经解决了这个问题。但我仍然不知道为什么我做了什么。

我们的代码在运行时有一个svn存储库。我有一个本地的git-svn存储库,因为我< 3 Git。 :)我们使用Windows,所以我使用Cygwin。我认为Cygwin的最新版本是Git 1.7.0.4。星期五,我没有问题地提交我的代码,回家了。星期一早上我回来了,并试图'git svn rebase',因为有人在周末提交了代码(成绩优异)。

它开始正常,然后突然决定它找不到行李箱。不幸的是,我丢失了确切的错误消息,但它大喊大叫不要找到/ refs / remotes / trunk ...而且我非常害怕。幸运的是,我没有未提交的代码。没什么可失去的。尽管如此,每次我尝试'git svn rebase'之后,它都会挂起来,然后我会得到以下错误:

  

无法确定工作树历史记录中的上游SVN信息

我研究了一整天。我尝试将svn-remote网址从https://xxx.xxx.xxx/xxx/xxx更改为https://xxx.xxx.xxx/xxx/xxx / ,这看起来很荒谬。然后我做了一个'git svn fetch'......它重新获取了整个主干(所有1682个提交)。但是,这种反弹仍然行不通。所以我放弃了这一天,并决定第二天我将创建一个新的存储库并重新开始(这将需要一整天)。今天早上,在我毫不掩饰地删除我的存储库之前,我去了这里问问题。我偶然发现了这个:

git-svn rebase gone horribly wrong

这不是完全我的问题,但我决定尝试'git reset --hard trunk'因为这就是我想要的。它奏效了。一切都很好。

然而

为什么一开始就这样做?据我所知,我没有更改任何东西,因为我周末没有上班。什么样的事情会导致这个错误?我认为我心不在焉地做了一件糟糕的事,但我需要知道是什么让我不再这样做了。 :)

提前致谢。

1 个答案:

答案 0 :(得分:2)

此错误:

Unable to determine upstream SVN information from working tree history

听起来你现在的git历史根本不是基于svn的历史,因此rebase找不到共同的祖先。

通过更改URL,我认为所有提交都有相同的提交消息,因此不同的sha1哈希值,因此您的旧祖先与新祖先不匹配,导致rebase失败。

至于为什么主干消失/失败,很难理解没有错误信息的情况。