2012-02-22 97 views
6

我使用Mercurial来控制我的源代码版本。但有些人更喜欢其他版本控制系统(如git,Bazaar,SVN,CVS)。多个源代码存储库

我想知道,是否可以一次在多个系统下存储一个存储库,以便人们可以使用他们想要的任何存储库?

+2

想要轻松地从你的仓库中取出,然后在他们的本地副本中执行'darcs init'或'git init'或'svn import'的人(如果他们愿意的话)。你几乎不能满足服务器端的每个人的喜好,并保持你的主回购同步听起来讨厌和资源密集型。 – tripleee 2012-02-22 13:59:29

回答

4

GitHub为Mercurial开发了hg-git扩展。这个扩展允许你使用Mercurial从git仓库进行克隆,然后重新插入。所以如果你不介意有一个中心的git仓库,那么它肯定有可能使用git和mercurial来访问它。

虽然另一个答案指出你提到的大多数VCS工具与使用非常类似,所以值得一提的是,与最小的努力相比,是否值得让人们使用他们想要的任何东西是值得的参与学习一个新系统。

3

我不知道Mercurial,但使用AccuRev可以在AccuRev和Git中维护您的源代码。插件Kando负责从AccuRev复制到Git,反之亦然。有关更多详细信息,请参阅http://www.accurev.com/kando

2

不容易 - 您必须通过大量钩子和事件脚本来保持每个人与其他人同步。例如,可以从颠覆中结账,在该文件夹中执行hg init,并临时使用mercurial进行工作,然后在开心时最终提交给颠覆(确保您不添加和提交文件以及.hg文件) 。同样取决于开发人员的数量,如果两个开发人员在不同的版本控制系统下承诺使用相同的文件,您可能会遇到各种与合并冲突有关的问题。由于Subversion(和CVS)是集中版本控制系统,并且git,bazaar和mercurial都是分布式的,所以它们保持同步将需要为每一个选择一个主副本。

你提到的VCS工具在命令行上都很相似(尽管CVS真的不应该再使用),所以其他用户的学习曲线并不特别陡峭。

4

是可以存储在多个系统信息库一次

我觉得答案是否定的,作为一个档案库有链接到应用程序特定的格式。

最好的做法是让授权其他开发者使用符合他们需求的客户端应用程序,如果它与您的工作过程兼容。

示例:您有一个现有的SVN回购和另一个Git回购。作为开发人员,我只想使用BZR。我可以使用bzr-svn或bzr-git插件分支SVN或Git,在本地使用BZR提交(并从BZR功能中受益),然后将结果推回到SVN或Git的

1

这取决于转换工具是否易于选择并使用混帐: 混帐svn的官方支持,它是建立在Windows中的版本,容易在Debian中安装/ Ubuntu的使用deb包

韩庚:
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