Mercurial设置:一个中央仓库还是几个?

Rob*_* S. 9 mercurial

我的公司正在从Subversion转向Mercurial.我们正在为我们的产品使用.NET.我们有一个解决方案,其中包含十几个项目,这些项目是独立的模块,彼此之间没有依赖关系.我们在服务器上使用中央存储库,使用推/拉来进行集成构建.

我想弄清楚我是否应该创建一个包含所有项目的中央仓库,或者我是否应该为每个项目创建一个单独的仓库.单独回购的一个论点是,分支单个模块会更容易,但单个回购的参数更容易管理和工作流程.

我对hg和DVCS很新,所以非常感谢一些指导.

ETA:在hginit.com,Joel说:

[I]如果您已经习惯为整个公司拥有一个巨大的巨大存储库,有些人只会检查并处理他们关心的子目录,这不是一个很好的方式来使用Mercurial - 你最好为每个项目提供大量较小的存储库.

如果有人可以扩展这个或指向我更多文档,那就太好了.

Twe*_*les 5

这里你应该考虑的一件事是Mercurial不支持检查像subversion那样的目录.一个典型的subversion设置是拥有一个包含多个独立项目的巨型仓库,当有人需要代码时,他们只会检查包含该项目的子目录.你不能在mercurial中这样做.你要么拿整个回购,要么什么也不做.如果每个从事这些项目的人都不需要所有代码,那么您可能希望将其拆分为单独的存储库.

编辑:链接可能有助于设置,特别是"发布多个存储库"部分.

  • 对于我们(带有maven的java),当分成最小的逻辑单元时,mercurial repos工作得最好.所以在实践中,如果我们有一个项目的API,那么它被置于它自己的回购中.Impl代码进入了自己的仓库.该工作流程需要巧妙地使用子目录,和/或经常拉到存储库的习惯.工作流程在CI方面是有益的,因为设置很简单,反馈循环很快.我们通过CI的RSS-feeds进行了变更发现.人们总是可以很容易地看到是否/什么时候发生了变化,因为它经历了CI循环. (2认同)