同步2个不同的存储库

时间:2014-03-06 21:00:38

标签: git svn

A公司正在开发软件并正在使用他们自己的SVN

B公司也希望使用相同的软件,但他们只知道如何使用GIT

公司B不想使用公司A的存储库

公司B能否同步公司A的SVN副本 - 但是在GIT中他们也可以使用它吗?

基本上,不是他们共享1个存储库,而是会有2个已同步的存储库

一个在SVN中提交代码,另一个在GIT中查看[反之亦然]

1 个答案:

答案 0 :(得分:1)

GitHub has some support for accessing repositories with both Git and Subversion。虽然我没有亲自尝试过,但如果公司A愿意转而使用GitHub,它可能就是您所寻找的。

或者,我猜你可以使用git-svntutorial)让B的git与公司A的svn存储库(副本)对话。 Git-svn与您描述的内容最接近 - 它以git期望的格式创建Subversion存储库的副本,这意味着所有常规git命令都可以使用它。

但是,这不是一个完美的解决方案。以下是the git book对此所说的内容:

  

如果您暂时使用Subversion服务器,或者在需要运行Subversion服务器的开发环境中,git svn工具非常有用。但是,您应该认为它会使Git瘫痪,或者您会遇到可能会让您和您的合作者感到困惑的翻译问题。为避免麻烦,请尝试遵循以下准则:

     
      
  • 保留一个不包含git merge所做的合并提交的线性Git历史记录。将您在主线分支之外所做的任何工作重新引回到它上面;不要合并。

  •   
  • 不要在单独的Git服务器上进行设置和协作。可能有一个加速新开发人员的克隆,但不要推送任何没有git-svn-id条目的东西。您甚至可能希望添加一个预接收挂钩,用于检查git-svn-id的每个提交消息,并拒绝包含没有它的提交的推送。

  •   
     

如果您遵循这些准则,使用Subversion服务器可能更容易忍受。但是,如果可以转移到真正的Git服务器,那么这样做可以让您的团队获得更多。

最后,您可以查看this answer,其中建议使用商业SubGit工具查看与您的反向相似的用例。我也没有SubGit的经验,但是它作为git-svn的更好替代品而上市,值得一试。

实际上,来自不同公司的两个不同的团队同时在两个不同的SCM系统中处理相同的代码库 - 这就是你想要的 - 听起来像是等待发生的灾难。从你的问题来看,我对你的情况知之甚少,不知道哪个更好,但我相信你可以尝试......

  • 进一步分离两家公司,让公司A正式发布B公司版本,如果需要,让B发回补丁。如果B不经常修改A的代码,这可能会很好。它还可以更好地控制自己的代码(他们决定是否接受B的补丁),这听起来像是一个有用的官僚程度。
  • 更好地加入两个团队并让他们使用相同的工具。如果你很了解Git,SVN真的不是那么难。反之亦然,应该不会那么难。

无论如何,祝你好运!

相关问题