我正在测试SubGit作为从SVN迁移到Git的一种方式。
我想要做的是能够在git存储库中创建远程分支,所有用户都可以使用这些分支,而不会将同步回SVN。
我只希望SubGit跟踪主分支并将其同步回SVN,这样我们就可以自由地使用和共享其他Git分支。
有什么简单的方法吗?
谢谢
发布于 2013-05-16 15:17:24
理想的解决方案是指定主干:SubGit配置中的any /heads/主映射,这样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将忽略该分支,因为refs/head/foo不同步范围。
合并提交带来的问题是:如果提交A是将分支foo合并到主服务器的结果,那么SubGit将在Subversion侧为提交A的相应父级创建分支/foo。如果您不希望将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支持单分支布局,因此配置文件可能如下所示:
希望这能有所帮助。
https://stackoverflow.com/questions/16588228
复制相似问题