我测试SubGit为迁移从SVN转向Git的一种方式。
我想这样做是能够创造的git仓库远程分支,所有的用户都可以使用不同步回SVN。
我只想SubGit跟踪主分支和同步回SVN,使我们不得不使用和分享其他的Git分支的自由。
有没有一种简单的方法来做到这一点?
谢谢
我测试SubGit为迁移从SVN转向Git的一种方式。
我想这样做是能够创造的git仓库远程分支,所有的用户都可以使用不同步回SVN。
我只想SubGit跟踪主分支和同步回SVN,使我们不得不使用和分享其他的Git分支的自由。
有没有一种简单的方法来做到这一点?
谢谢
理想的解决方案将被指定主干:参考文献/头/主映射SubGit配置 ,所以SubGit将与主忽略任何其他分支同步树干 。
不幸的是,SubGit需要的时刻(版本1.0.x的和2.0.x)至少一个分支映射。 也就是说,一个人必须指定这样的东西:
trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*
既然你不会同步所有的Git分支,可以考虑使用一些特殊的命名空间要解决这个问题:
trunk = trunk:refs/heads/master
branches = branches/*:refs/gitsvn/heads/*
...
所以,如果一个推主分支中央Git仓库,它被翻译成树干 。 然而,如果一个推分支FOO,SubGit忽略该分支自参/头/ foo是不同步范围。
麻烦来自合并提交:如果提交一个是合并分支富成主的结果,然后SubGit相应承诺A.父创建了branches /富上颠覆侧如果你宁愿不包括SubGit产生分支成*分支/ **命名空间,可以考虑使用Subversion的侧一些特殊的分支,以及:
trunk = trunk:refs/heads/master
branches = gitsvn/branches/*:refs/gitsvn/heads/*
shelves = shelves/*:refs/shelves/*
tags = gitsvn/tags/*:refs/gitsvn/tags/*
在这种情况下提交A的相同父应该被发送到gitsvn /支链/ FOO分支。
这是目前可用的最佳解决方案。 我们也有2.1版本的功能请求,这将使你的一个理想的解决方案,但它是怎么回事之前,我们实现它需要一些时间。
更新上SubGit 3.0:
由于版本3.0.0(目前早期访问阶段,在下载http://subgit.com/eap )SubGit支持单支布局,所以配置文件可能如下所示:
没有树干,没有分支,没有标签和没有架子:
[svn] url = http://host.com/repos/project
在这种情况下, 项目目录是直接映射到Git仓库主分支; SubGit忽略任何其他部门和从不创建这意味着匿名的Git分支没有得到同步到SVN货架。
单树干,没有架子:
[svn] url = http://host.com/repos/project trunk = trunk:refs/heads/master
在这种情况下, 项目/主干目录映射到掌握 Git仓库分支; SubGit忽略任何其他部门和从不创建货架。
单树干与货架:
[svn] url = http://host.com/repos/project trunk = trunk:refs/heads/master shelves = shelves/*:refs/shelves/*
在这种情况下, 项目/主干目录映射到掌握 Git仓库分支; SubGit忽略其他任何子公司,但默认情况下,版本1.0.x的和2.0.x的转换匿名分行作为货架
希望帮助。