我们有2-3个2-3人的小团队。我们都使用git for local和svn for central repository和git-svn得到同步。除非我们想在团队之间共享我们的代码,否则它始终有效。
所以我们尝试了git pull,这会产生很多冲突,并且它不会检测到我们在同一棵树上。它获取所有更改(与克隆相同然后拉) 当然我不想克隆完整的回购。每次我想分享。
请建议更好的流程。
答案 0 :(得分:3)
指定一名团队成员作为“git hub”,他/她与SVN服务器同步,其他团队成员与他们互动,而不是直接与SVN服务器互动。这样git就会知道所有团队成员都在同一棵树上。
答案 1 :(得分:3)
SubGit似乎是一个很好的选择。
SubGit 是服务器端解决方案,它允许Git访问Subversion存储库,反之亦然。这意味着您只能使用您选择的Git客户端使用Git存储库。
您需要将SubGit安装到Subversion存储库中一次。之后,SubGit立即将svn修订版转换为每个svn commit
的git commit,并将git commit转换为每个git push
的svn修订版。
SubGit是封闭源代码软件,但它对于开源项目是免费的。有关详细信息,请参阅SubGit documenation。
答案 2 :(得分:2)
要添加Chris Huang-Leaver的答案,您需要一个中心点来使用svn repo进行dcommit / rebase。
这并不否认Git的“分散”方面,它只是允许每个人作为他们的远程存储库之一,使用一个“中央”引用回购(即与svn同步)
没有简单的方法可以避免克隆来自(可能是巨大的)svn回购的所有的负担,因为生成的Git repo cannot be split into submodules。 这留下了至少一个“解决方案”,其中包括:
显然需要自动化,但是一个团队将把重点放在那些git repos的一个作为其“中央”回购,而SVN同步的负责人会更新那些较小的Git回购来自主要(和隐藏)Git< => SVN回购的补丁。