在同一台服务器上提供多个mercurial存储库

时间:2011-11-18 14:45:30

标签: mercurial

我有一个问题。我们目前正在尝试为我们的开发选择合适的结构。我们想要实现的目标如下:

  • Mercurial中有一个中央存储库 - 我们称之为A。
  • Mercurial中还有A库的子库 - 存储库B,C和D(对于每个开发人员)。
  • 每个存储库都有一个钩子将它绑定到Hudson。
  • Hudson有几个工作(对于每个开发人员) - 它生成一个构建并将其部署在目录中的测试服务器上,用于推动它自己的存储库的具体开发人员。
  • 因此,每个开发人员都可以使用自己的存储库,并且只需每周一次就可以推送到中央存储库。

问题是如何在单个服务器上托管所有这些存储库。我想要这样的东西:

通过这种方式,我可以在Hudson中为每个存储库创建脚本,这样一个开发人员的工作就不会以任何方式影响另一个,EAR的测试也不会重叠,因为每个开发人员都会获得自己的EAR和展开。

UPD。感谢大家的回答。现在我们使用以下结构。

  • 中央存储库使用 hg serve 命令在8000端口托管。
  • 对于个人开发人员存储库,它们是通过从中央存储库克隆创建的,然后在hgweb.cgi的帮助下托管在8001端口上(观看此tutorial)。

2 个答案:

答案 0 :(得分:5)

与hgwebdir.cgi一样,值得看Rhodecode。它是一个支持pull和push的mercurial的web应用程序,但也可以在服务器上执行fork管理(比如bitbucket或git-hub)。它也非常适合探索变更集或文件,但是对于你而言,它是开发人员能够在服务器上设置他们自己的叉子,我认为这将是主要的卖点。

比hgwebdir重一点。安装有点复杂(它用Pylons编写,所以它是fcgi或wsgi),但它仍然非常简单。我在一小时内就有了一台测试服务器。

答案 1 :(得分:4)

了解为Apache配置hgwebdir.cgi:

https://www.mercurial-scm.org/wiki/HgWebDirStepByStep

这就是我们设置的方式,它非常容易(与Apache SVN设置相比,它是孩子的​​游戏),但如果你有任何问题,请回来编辑。

当然我们在https://myHgServer/hg/repo1,repo2等主持我们,但这都是apache配置。

我们将此与phpHgAdmin结合使用,以便轻松管理访问和配置回购。