svn repo重命名后,git svn不再重新绑定

时间:2015-07-09 12:20:53

标签: git svn git-svn

我最近通过git-svn重命名了我正在使用的svn存储库。我想如果我重命名我的git项目所在的文件夹,并将git配置更新为url = svn://foo/bar,并将其命名为新名称,但我得到以下错误:

Unable to determine upstream SVN information from working tree history

还有什么可以让它再次运作?

1 个答案:

答案 0 :(得分:1)

SVN存储库的名称是git svn id的一部分(因此也是提交哈希值的一部分),因此您不能只重命名svn远程数据库。

解决此问题的最简单方法是对svn存储库执行另一次克隆,并重播未提交给旧存储库的任何更改:

/tmp/oldclone$ git format-patch origin/trunk
/tmp/oldclone$ cd /tmp
/tmp$ git svn clone svn:/new.remote/ newclone
/tmp$ cd newclone
/tmp/newclone$ git am /tmp/oldclone/????-*.patch
/tmp/newclone$ git svn dcommit

对于单个SVN存储库中的目录跟踪svn rename,您可以使用--trunk选项来实现这一目标。 假设您最初在存储库的 root 中有一个目录/project1/,并且您将其重命名为/projectA/(使用类似svn mv project1 projectA的内容),则可以执行部分​​操作检查包含完整历史记录的存储库,例如:

/tmp$ git svn clone --trunk=/ svn:/new.remote/ newclone