我读过关于Mercurial中单个中央存储库与多个存储库方法的文章(例如这些SO问题),很明显,小型存储库(每个自包含的项目一个)是正确的方法。
但是这意味着大量的存储库,这里的"大量"意味着很难跟踪哪个包含什么。我在一个小团队里。考虑到我们所做的项目的数量,不同的分支/版本等等,我可以看到我们有50或60个存储库。
有什么工具可以帮助编目/管理一个有几十个或几百个存储库的Mercurial服务器吗?
编辑:我使用SCM-Manager(在我们的防火墙内)和bitbucket(在我们的防火墙外)。哦,当然,每个开发人员都将拥有自己的本地克隆版本。
问题不在于如何在服务器上放置大量的mercurial存储库,而在于如何跟踪它们。
您如何为这些存储库提供服务?如果您使用hgweb
,那么最简单的方法是在服务器上的hgrc
文件中添加描述。您可以在[web]
部分这样做:
[web]
description=Description goes here
将描述添加到基于web的界面中,这对我们来说很好(我们有大约30个存储库)
除此之外,我认为你所拥有的大多数选择都涉及到选择一个包含这个功能的基于web的发布方法,比如Rhodecode。
正如@Steve建议的那样,web方法非常好。我用这种方式管理50多个存储库。
我有一个进程在批处理文件中运行hg serve
:
hg serve --prefix mercurial --address my-hg-server --port 8000 --web-conf hg-web.conf --accesslog hg-access.log --errorlog hg-error.log
[web]
style = default
allow_push = *
push_ssl = false
[paths]
repos1 = \hg-repos-serverrepos1
repos2 = \hg-repos-serverrepos2
....
然后,通过访问:
http://my-hg-server:8000/hg
我得到一个链接到我所有仓库的页面。链接可以被用户复制和克隆。
这是一个非常简单的设置,对我们来说效果很好。
你可以包装hg服务批处理文件或shell脚本作为一个服务运行,你可以把这些都放在Apache web服务器后面,以管理更多的安全性。
希望对大家有所帮助