我有许多使用git-svn创建的git项目作为SVN存储库的克隆。我们已将SVN存储库迁移到新的提供者,因此URL现在已更改。如何更新我的git克隆的远程SVN URL?
一种可能是我从新的SVN存储库重新克隆,但我不希望这样做,因为这个过程可能需要几天时间才能获取整个历史记录。
提出这个问题的另一种方式是,git将您正在使用的远程SVN存储库的位置信息存储在哪里?也就是说,当你输入'git svn info‘时,URL信息从何而来?
发布于 2011-05-12 18:25:44
我在git wiki中找到了一个页面,它准确地回答了我的问题:
https://git.wiki.kernel.org/index.php/GitSvnSwitch
git
<代码>H114运行git svn rebase现在应该可以再次工作!
只有在git svn fetch步骤实际获取任何东西的情况下,这才能起作用!(我花了一段时间才发现……为了实现这一点,我不得不对我们的svn存储库进行了一个虚拟修订!)
发布于 2016-11-10 17:15:47
遵循same url [1],但有了更新的解决方案,它变得更容易。
在.git/config
内部的[svn-remote]
部分中,将url
设置为新的 URL,并将url
设置为旧的 URL:
[svn-remote "svn"]
url = https://new.svn-server.net/svn/root
rewriteRoot = https://old.svn-server.net/svn/root
通过本指南中的git config ...
命令也可以做到这一点:
$ git config --local --replace-all svn-remote.<name>.rewriteRoot `git config --local --get svn-remote.<name>.url`
$ git config --local --replace-all svn-remote.<name>.url <new_url>
然后它就可以工作了,对我来说,即使在新服务器上没有新的修订,我也不需要做任何虚拟的修订。有趣的是,git svn info
报告了相同的旧网址,但使用新网址作为Repository Root:
$ git svn info
Path: .
URL: <old-url>
Repository Root: <new-url>
https://stackoverflow.com/questions/5975667
复制相似问题