Git:无法从HEAD历史记录中确定上游SVN信息

时间:2011-07-19 19:39:06

标签: git git-svn

我已成功使用git-svn连接到我的svn trunk一段时间了。我最初通过这样做来设置我的回购:

git svn clone -s http://domain.com/svn/name-of-repo

我已经安装了很长时间(可能接近一年)并且没有遇到问题,很可能因为我所做的一切都是在本地git分支上,我最终合并回我的主分支,并提交回svn trunk。

最近,我需要开始在同一个svn repo http://domain.com/svn/name-of-repo/branches/demo中向另一个分支提交一些更改。

我可以通过编辑我的.git / config文件并添加以下行来从该分支获取一次:

[svn-remote "svndemo"]
    url = http://domain.com/svn/name-of-repo/branches/demo
    commiturl = http://domain.com/svn/name-of-repo/branches/demo
    fetch = :refs/remotes/git-svn-demo

然后我运行以下命令来获取演示分支,从版本4034开始:

git svn fetch svndemo -r 4034 

所以现在我有一个名为remotes / git-svn-demo的新远程分支。从那时起,我创建了一个功能分支:

git checkout -b svndemo-local remotes/git-svn-demo

这抓住了我需要的东西,所以我做了我必须做出的改变,致力于我的本地分支,然后尝试运行“git svn fetch&& git svn rebase”。两者都返回错误:

  

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

这就是我陷入困境的地方。我已经环顾四周,以及其他网站(谷歌)但除了“git-svn再次克隆回购,并重新开始”之外没有找到解决方案,这是不理想的。

我查看了我的.git / svn / refs / remotes / git-svn-demo / unhandled.log并将其与我的.git / svn / refs / remotes / trunk / unhandled.log进行了比较,没有什么他们有很大的不同。

我还查看了从此远程分支的初始提取中提取的提交消息,其中包含git-svn-id信息。

  等等等等等等,这是提交信息,等等等等等等      

git-svn-id:http://domain.com/svn/name-of-repo/branches/demo@4034 e6edf6fb-f266-4316-afb4-e53d95876a76

我很想听到关于这个的新想法。

1 个答案:

答案 0 :(得分:1)

要访问svn分支,您不需要添加新的svn远程。当您使用-s(标准)选项设置git svn clone时,git还会跟踪分支下定义的所有分支。

您应该能够看到git branch -r的分支(在本例中为分支演示)。

如果你查看它,你可以在其中工作,并且svn dcommit to it。

我不确定更改svn-remote是否搞砸了你的存储库,但是在我的位置我会认为它确实存在并且将从原始克隆命令开始。