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

时间:2013-11-18 23:45:45

标签: git svn git-svn

我正在尝试每天将我的svn存储库同步到git。经过多次阅读,我能够通过在我的.git / config中手动创建以下内容来完成这项工作:

[svn-remote "svn"]
url = svn+ssh://svn.myserver.com/project/trunk
fetch = apps/ios/project:refs/remotes/mirror/project

然后我根据此代码创建了一个分支,并将其推送到git repo:

git checkout -b mirror/project mirror/project
git svn rebase
git push

我很高兴,直到我认为我确实通过从磁盘删除克隆的repo并再次克隆它,然后尝试从svn推送一些更新来确保这实际上有效。

git clone git@myrepo.com:myproject
git checkout mirror/project
git svn rebase

这给了我以下错误:Unable to determine upstream SVN information from working tree history

我已经在stackoverflow上阅读了关于此消息的无数帖子,但我还没有理解任何解决方案。是否可以用git新手来解释为什么git选择忘记我的svn配置?

2 个答案:

答案 0 :(得分:3)

我没有看到一个简单的“git clone”如何知道你的svn上游回购信息。

您已将svn-remote存储在.git/config中。克隆回购时没有克隆本地配置(正如我在“Is it possible to clone git config from remote location?”中提到的那样)。

除非您执行git svn clone或在您的回购邮件中再次提供svn-remote信息,否则您将无法访问初始信息。

答案 1 :(得分:2)

以下命令让我的新克隆重新连接到Subversion:

git svn init https://svn.myserver.com/project -s
git update-ref refs/remotes/origin/trunk refs/remotes/origin/master
git svn rebase

似乎更新裁判是缺失的一步。