我当前使用-s“标准布局”选项克隆的svn分支称为:
$ git branch -r
branch1
branch2
我想将它们重命名,使它们变成:
$ git branch -r
svn/branch1
svn/branch2
好像我最初调用了 $ git-svn clone --prefix svn。 在远程端上我不需要改变任何名称。
假设您没有通过 git remote add ...
添加另一个远程仓库,请尝试以下步骤:
git gc
命令,将所有的引用打包到 .git/packed-refs
文件中。.git/packed-refs
文件进行编辑。将 "refs/remotes/" 替换为 "refs/remotes/svn/"。打开 .git/config
文件进行编辑。您应该会看到类似于以下内容:
[svn-remote "svn"]
url = SVN_REPO_URL
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*
将“refs/remotes/”替换为“refs/remotes/svn/”:
[svn-remote "svn"]
url = SVN_REPO_URL
fetch = trunk:refs/remotes/svn/trunk
branches = branches/*:refs/remotes/svn/*
tags = tags/*:refs/remotes/svn/tags/*
确保还要更新任何远程跟踪分支。你只需在整个文件中用"refs/remotes/"替换为"refs/remotes/svn/"即可。
我使用我的git-svn GNU Nano存储库的副本测试了此过程,似乎可以正常工作。
编辑:我刚验证了这个过程不会搞乱git-svn dcommit或rebase操作。就像--prefix=svn/
最初在git svn clone -s SVN_REPO_URL
命令中规定一样。
.git/svn/refs/remotes/trunk
移动到.git/svn/refs/remotes/svn/trunk
,否则在执行git svn fetch
时会出现open: No such file or directory at C:\Program Files (x86)\Git/libexec/git-core\git-svn line 561
错误。 - ax.