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

4 回答 4

11

Mercurial 很好地支持“中央存储库”,但它是按照惯例而不是法定的。

您只需要运行一个服务器即可运行所有 60 个存储库,而且您不会使用hg serve它。相反,您可以从发布选项中选择一种生产质量方法。hgwebdir根据您的偏好,您可能会在 Apache、Nginx 或 IIS 之后运行。

一旦运行,您可以使用hg inithg clone在您的存储库目录中创建新的存储库。在以前的雇主中,我们有五个产品,每个产品都有一个“中央”存储库,每个产品都有十到二十个克隆,用于各种团队和功能,所有产品都在单个服务器上运行。中央回购决定“什么是官方的”,但你会发现非官方功能的即兴回购一直在涌现。

hg serve是让两个开发人员匆忙交出一些变更集,但发布的 repos 需要更多的脚手架。

于 2010-05-01T02:36:29.703 回答
6

您将为每个项目创建 1 个中央仓库。如果我是你,我会考虑通过Kiln托管。它包含了非常好的评论工具和一个围绕 Mercurial 的漂亮的 Web 界面,具有无限的存储库和存储空间。他们会为您处理所有令人讨厌的托管和备份。我也强烈推荐Joel 的 Mercurial 教程

于 2010-05-01T01:48:07.413 回答
2

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

于 2011-07-10T22:46:46.280 回答
0

以最简单的方式,您将需要 60 个中央“存储库”,所有这些都可以使用一个内容/Web 服务器提供服务。每个存储库都可以被视为具有从服务器容器根目录开始的路径的目录。

想想bitbucketgithub。它们在一台服务器(或者很可能是一个服务器场)下为数千个存储库提供服务,但它们彼此独立,不像 SVN,所有内容都在一个巨大的存储库下并共享修订增量。

于 2010-05-02T18:15:57.750 回答