如何轻松在共享中央服务器上发布新的Mercurial仓库或子仓库?(推送克隆)
Mercurial有很多发布选项,其中HgWeb(以前叫HgWebDir)几乎完全满足我的需求。HgWeb 1.6支持多个代码库,包括集合。
所以,hgweb.config文件可能会包含这样的内容:
[collections]
/home/user/collection1 = /home/user/collection1
/home/user/collection2 = /home/user/collection2
上面的文件夹(collection1, collection2)可能每个都包含大约10到20个代码库,作为子文件夹,放在上面的路径中。
我的问题是,有没有什么hg扩展或者配置技巧,可以让我把一个克隆版本推送到hgweb提供的集合中?
我在Linux上的常用方法是通过SSH远程登录,然后对我开发工作站上的代码做一个hg clone
,我会暂时用`hg serve`来提供这个代码库。我发现我和一些懂Linux的开发者一起工作,他们可以轻松通过ssh登录到服务器上,使用hg进行操作。但是Windows用户(a)不太懂ssh,(b)也不熟悉Linux的命令行环境,他们希望能通过他们的IDE版本控制插件,或者图形界面工具,或者通过我用Python写的CGI页面,来远程拉取一个克隆版本,这样他们就能把自己的HG代码库推送到一个中央代码库,而不需要通过ssh访问远程服务器。在某些情况下,如果中央的Mercurial服务器是在Windows上运行的,你甚至可能无法ssh登录到远程服务器。
在我看来,答案是“不能这样做”,除非我为hgweb写一个自己的扩展,而我正打算这么做。但如果hg中已经有办法做到这一点,我希望能知道。
相关问题:
1 个回答
Mercurial的默认网页界面不支持远程创建仓库(你可以查看这个链接了解更多:为什么Mercurial不支持通过HTTP远程创建仓库?)。不过,如果你的开发伙伴可以通过SSH登录到Mercurial服务器,并且服务器上有一些可以被多个用户访问的共享文件空间,那么你就可以使用SSH仓库的地址把本地的仓库克隆到服务器上(详细信息可以参考这个回答:see this answer)。对于Windows用户来说,这也应该很简单,因为Mercurial会处理底层的SSH相关操作。