代码之家  ›  专栏  ›  技术社区  ›  Mario

如何为Mercurial最佳配置中央存储库/多个中央存储库?

  •  13
  • Mario  · 技术社区  · 16 年前

    我刚接触到Mercurial,我想知道它是否能取代SVN。我工作的每个人都使用过SVN、CVS和VSS(颤抖),所以这可能是一个很大的变化。在阅读了它的合并和分支能力之后,我非常感兴趣,但是有一些保留。

    我们目前在SVN上,并且有一个中央存储库。在我看来,在使用Mercurial时,似乎没有一个中央存储库可以存储所有项目。注意:我们认为每个项目都是一组单独的逻辑代码,或者是一个Visual Studio解决方案。它自己运行。

    我们的一个中央SVN存储库中有大约60个独立的项目。在阅读了Mercurial之后,在我看来,我必须为服务器上的每个项目创建60个独立的中央存储库。问题1:我应该为每个项目创建一个单独的存储库吗?

    如果是,那么我担心配置和托管60个单独的中央Mercurial服务器。我开始想我可以配置一个文件,但似乎每个存储库都必须使用C:…\myrepository.hg\hgrc文件(Windows安装)进行单独配置。似乎我还必须运行60台服务器(>hgserver),我假设在不同的端口上运行。问题2:如果问题1的答案是“是”,那么每个项目都应该有一个中央存储库,那么人们是如何管理多个存储库的呢?

    最后,我还没有考虑将所有的历史和变化从一个SVN存储库转移到一组单独的Mercurial存储库,但是我会感谢那些做过这些的人(或者如果可能的话)的任何评论。

    4 回复  |  直到 8 年前
        1
  •  11
  •   Vadim Kotov First Zero    8 年前

    Mercurial支持“中央存储库”很好,但它是按约定而不是按固定方式来实现的。

    您只需要运行一台服务器就可以运行全部60个存储库,而不需要使用 hg serve 为了它。相反,您可以从 among the publishing options . 你可能会跑 hgwebdir 在Apache、Nginx或IIS之后,取决于您的偏好。

    一旦开始运行,你就可以用 hg init hg clone 在您的存储库目录中。在以前的雇主那里,我们有五种产品,每种产品都有一个“中央”存储库,每种产品有10到20个克隆,用于不同的团队和特性,所有这些产品都在一台服务器上运行。中央回购决定了“什么是官方的”,但你会发现临时回购的非官方功能不断涌现。

    Hg发球 对于两个开发人员来说,很快就要交付一些变更集,但是发布的回购协议需要更多的搭建。

        2
  •  6
  •   Tom Cabanski    16 年前

    您将为每个项目创建1个中央回购。如果我是你,我会考虑通过 Kiln . 它将非常好的审查工具和一个漂亮的Web界面环绕在Mercurial之上,拥有无限的存储库和存储空间。他们会为你处理托管和备份的所有棘手问题。我也强烈推荐 Joel's Mercurial tutorial

        3
  •  2
  •   marcinkuzminski    15 年前

    如果你在寻找自我托管的东西,看看 http://rhodecode.org 它比纯hgweb强大得多。它就像一个自托管的小比特桶。

        4
  •  0
  •   Santa    16 年前

    以最简单的方式,您需要60个中央“存储库”,所有这些都可以使用 内容/Web服务器。可以将每个存储库视为一个目录,其中包含来自服务器容器根目录的路径。

    想想 bitbucket github . 它们在一个服务器(或最有可能是一个服务器场)下为数千个存储库提供服务,但它们彼此独立,不像SVN那样,所有内容都在一个大型存储库下,并共享修订增量。