如何最佳配置Mercurial的中央仓库/多个中央仓库?

13

我对Mercurial很陌生,正在尝试了解它是否可以取代SVN。 我认识的每个人都用过SVN、CVS和VSS(发抖),所以这可能是一个相当大的改变。在阅读了关于其合并和分支功能的文章后,我非常感兴趣,但仍有一些保留意见。

目前我们使用SVN,并且有一个中央存储库。从我的阅读中,当使用Mercurial时似乎没有所有项目的单个中央存储库。注意:我们将每个项目视为单独的代码逻辑集或Visual Studio解决方案。 它运行它自己。

我们在一个中央SVN存储库中有约60个单独的项目。阅读Mercurial相关信息后,我觉得我必须为服务器上的每个项目创建60个单独的中央存储库。 问题1:我应该为每个项目创建单个存储库吗?

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

最后,我还没有研究将所有历史记录和更改从一个SVN存储库移动到一堆单独的Mercurial存储库,但会感谢任何已经这样做过的人的评论(或是否可能实现)。

4个回答

11

Mercurial支持“中央存储库”,但它是按照习惯而不是命令来实现的。

您只需要运行一个服务器即可运行所有六十个存储库,但您不会使用hg serve。相反,您可以从发布选项中选择一个生产质量的方法。通常情况下,您可以根据自己的偏好在Apache、Nginx或IIS后面运行hgwebdir

一旦这样做了,您就可以在存储库目录中使用hg inithg clone创建新的存储库。在以前的雇主那里,我们有五个产品,每个产品都有一个“中央”存储库,以及各种团队和特性的十到二十个克隆版本,全部在单个服务器上运行。中央存储库确定“官方内容”,但您会发现非正式功能的即兴存储库不断涌现。

hg serve是为两个开发人员快速交付一些变更集,而发布的存储库需要更多的脚手架。


6
您将为每个项目创建1个中央仓库。如果我是您,我会考虑通过Kiln进行托管。它使用Mercurial提供了非常好的审查工具和漂亮的Web界面,拥有无限的存储库和存储空间。他们会为您处理所有不愉快的托管和备份细节。我也强烈推荐Joel's Mercurial tutorial

2
如果你正在寻找自托管的东西,可以看看http://rhodecode.org,它比纯hgweb更强大。它就像一个小型的Bitbucket,只不过是自托管的。

0
以最简单的方式来说,您需要60个中央“存储库”,所有这些存储库都可以使用一个内容/ Web 服务器进行服务。每个存储库都可以被视为具有从服务器容器根目录的路径的目录。
想想bitbucketgithub。它们在一个服务器(或最可能是一个服务器农场)下提供了数千个存储库,但它们彼此独立,不像SVN,其中所有内容都在一个巨大的存储库下并共享修订增量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接