2011-11-18 106 views
2

我有以下问题。我们正在尝试为我们的发展选择合适的结构。我们正在努力实现如下:在同一台服务器上提供多个mercurial存储库

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

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

这样一来,我可以创造哈德森每个仓库和这样的作业脚本的开发人员不会以任何方式影响对方,也不会对EAR的测试重叠,因为每个开发人员都会生成并部署自己的EAR。

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

  • 中心仓库在8000端口托管服务汞命令
  • 至于个人开发者资源库,他们是通过从中央资源库克隆创建的,然后在hgweb.cgi的帮助下托管在8001端口上(请参阅tutorial)。

回答

4

外观到配置hgwebdir.cgi的Apache:

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

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

当然,我们在https://myHgServer/hg/repo1,repo2等上托管我们的,但这是所有的Apache配置。

我们将此功能与phpHgAdmin结合在一起,便于管理访问和配置回购。

+0

顺便说一句,谢谢,我们该如何为父母和儿童回购服务。假设我有两个仓库hg/repo1和hg/repo2,而第二个是作为第一个克隆repo1 repo2的克隆创建的,它是否可以在服务器上工作,他自己的机器上的程序员是否能够克隆第二个回购和推动没有问题? –

+0

您必须在服务器上创建一个新的回购站,并让程序员将他的本地克隆推送到它,或者您可以在服务器上执行克隆并让程序员提取克隆。 – StrangeWill

5

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

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

+0

哇,你应该得到答案,检查出RhodeCode,它正在取代我们的系统,它就像一个微型Bitbucket,它很棒! – StrangeWill

+1

主塔和RhodeCode它不仅仅是fcgi(真的不推荐这个)或wsgi,它也可以与代理传递一起工作,并且内置贴纸服务器即使没有http服务器也可以用于服务整个事物。 – marcinkuzminski

相关问题