我的项目使用svn,我很久以前就去了git。我已经使用git-svn很长一段时间了很多成功。但现在在一个新的雇主,我遇到了一些问题。
SVN的布局是:
http://path/to
/trunk/
submodule1
submodule2
/branches/
branch1
submodule1
branch2
submodule1
submodule2
我检查了我的git-svn以跟踪每个子模块(我认为这是正确的方法)。
git svn clone http://path/to/trunk/submodule1
git svn clone http://path/to/trunk/submodule2
这给了我行李箱,但我无法弄清楚如何跟踪每个分支。我想--prefix会帮助我,我不认为它会。
有人有想法吗?
答案 0 :(得分:1)
您应该能够在布局规范中使用通配符来实现此目的。即对于submodule1
你会做什么
git svn clone --trunk=trunk/submodule1
--branches=branches/*/submodule1 \
--tags=tags/*/submodule1 \
http://path/to
(假设您的标签也遵循相同的模式)。对其他子模块重复相同的操作。
--prefix
选项与此无关。它只是控制如何在结果git存储库中命名分支。没有选项,所有分支将直接在refs / remotes /下。如果你想要更像通常的远程分支布局,你可以使用例如。
git svn clone --prefix=svn/ ...
获取refs/remotes/svn/trunk, refs/remotes/svn/branch1
等。该值会逐字地添加到生成的分支名称中,因此您需要尾随/或者最终会得到类似refs/remotes/svntrunk