Git-SVN:什么是‘svn开关--重新定位’?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

我通过git-svn镜像的SVN存储库更改了URL。

在SVN里你只需要做svn switch --relocate old_url_base new_url_base

我怎么能用git-svn来做这件事呢?

简单地更改配置文件中的SVN url失败。

提问于
用户回答回答于

我使用file://协议,并希望切换到http://协议。

编辑url设置为[svn-remote "svn"]分节.git/config,但单靠它自己,这是行不通的。一般来说,需要遵循以下步骤:

  1. 切换SVN-遥控器url设置为新名称。
  2. git svn fetch。这需要从SVN中获取至少一个新的修订版!
  3. 更改SVN-Remoteurl回到原来的URL。
  4. git svn rebase -l执行本地重基(使用上次获取操作带来的更改)。
  5. 更改SVN-Remoteurl返回到新的URL。
  6. 现在,git svn rebase应该又起作用了。

有冒险精神的人可能想试试--rewrite-root

用户回答回答于

可以看到以下操作是否正常:

  1. 如果svn-remote.svn.rewriteRoot配置文件中不存在(.git/config)): git配置SVN-emote.svn.rewriteroot<currentRepositoryURL>
  2. 如果svn-remote.svn.rewriteUUID配置文件中不存在: git配置SVN-远程.svn.rewriteUUID<currentRepositoryUUID>大currentRepositoryUUID可以从.git/svn/.metadata
  3. git config svn-remote.svn.url <newRepositoryURL>

扫码关注云+社区