我使用Mercurial来控制我的源代码。但有些人更喜欢其他版本控制系统(如git,Bazaar,SVN,CVS)。
我想知道,是否可以同时在多个系统下存储存储库,以便人们可以使用他们想要的任何存储库?
答案 0 :(得分:4)
GitHub为Mercurial开发了hg-git扩展。这个扩展允许你使用Mercurial从git存储库中克隆,然后再推入。所以如果你不介意拥有一个中央git存储库,那么肯定可以使用git和mercurial访问它。
虽然另一个答案已经指出你提到的大多数VCS工具都非常类似于使用,但是相比于所涉及的最小努力,是否值得投入让人们使用他们想要的任何东西是值得怀疑的。学习新系统。
答案 1 :(得分:4)
是否可以同时在多个系统下存储存储库
我认为答案是否,因为存储库具有链接到应用程序的特定格式。
最好是授权其他开发人员使用符合他们需求的客户端应用程序,如果它与您的工作流程兼容。
示例:您有一个现有的SVN repo和另一个Git repo。 作为开发人员,我只想使用BZR。我可以使用bzr-svn或bzr-git插件从 SVN或Git分支,在本地使用BZR提交(并从BZR功能中获益),然后推回结果到SVN或Git。
答案 2 :(得分:3)
我不了解Mercurial,但使用AccuRev可以在AccuRev和Git中维护您的源代码。插件Kando负责从AccuRev到Git的复制,反之亦然。有关详细信息,请查看http://www.accurev.com/kando
答案 3 :(得分:2)
不容易 - 你必须通过大量的钩子和事件脚本让每个人与另一个保持同步。例如,可以从subversion签出,在该文件夹中执行hg init
,并使用mercurial暂时工作,然后在您满意时最终提交回subversion(确保您不添加和提交和.hg
个文件)。如果两个开发人员在不同的版本控制系统下提交相同的文件,那么根据开发人员的数量,您可能会遇到来自合并冲突的各种问题。
由于Subversion(和CVS)是集中式版本控制系统,并且git,bazaar和mercurial都是分布式的,因此保持它们同步需要为每个系统选择一个主副本。
你提到的VCS工具在命令行上都非常相似(虽然CVS确实不应该再使用了),所以其他用户的学习曲线并不是特别陡峭。
答案 4 :(得分:1)
这取决于转换工具是否易于选择和使用 例如 混帐: git-svn是官方支持的,它是内置的Windows版本,易于使用deb软件包安装在debian / ubuntu中
汞柱:
https://www.mercurial-scm.org/wiki/WorkingWithSubversion
https://www.mercurial-scm.org/wiki/RepositoryConversion#Subversion
有许多类型的转换器可供选择,其中许多需要一些设置
BZR:
bzr-svn内置Windows版本,正式支持
详情请见http://wiki.bazaar.canonical.com/ForeignBranches/Subversion