我正在尝试每天将我的svn存储库同步到git.经过多次阅读,我能够通过在.git/config中手动创建以下内容来完成这项工作:
[svn-remote "svn"]
url = svn+ssh://svn.myserver.com/project/trunk
fetch = apps/ios/project:refs/remotes/mirror/project
Run Code Online (Sandbox Code Playgroud)
然后,我根据此代码创建了一个分支,并将其推送到git repo:
git checkout -b mirror/project mirror/project
git svn rebase
git push
Run Code Online (Sandbox Code Playgroud)
我很高兴,直到我认为我确实通过从磁盘删除克隆的repo并再次克隆它,然后尝试从svn推送一些更新来确保这实际上有效.
git clone git@myrepo.com:myproject
git checkout mirror/project
git svn rebase
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误: Unable to determine upstream SVN information from working tree history
我已经在stackoverflow上阅读了关于此消息的无数帖子,但我还没有理解任何解决方案.是否可以用git新手来解释为什么git选择忘记我的svn配置?
我不明白一个简单的“git clone”如何知道你的 svn 上游存储库信息。
您已将其存储svn-remote
在您的.git/config
. 当您克隆存储库时,不会克隆本地配置(正如我在“是否可以从远程位置克隆 git config? ”中提到的)。
除非您在存储库中执行git svn clone
或再次将该svn-remote
信息放入您的存储库中,否则您将无法访问您的初始信息。