火速配置完成mercurial(Hg)中心版本库,支持push/pull

虽然ssh方法非常完全,却不敏捷。。SCM基本上是只增不减的东西,所以支持push非常重要!

 

最好懂的方法是用hg serve,不过他不支持push,好吧。。而且默认端口是8000,我们要的是80,因为方便输入。。

所以。。最快的办法是在版本库目录输入:


echo "[web]" >>.hg/hgrc
echo "allow_read = *" >>.hg/hgrc
echo "allow_push = *" >>.hg/hgrc
echo "push_ssl   = false" >>.hg/hgrc

然后再hg serve (如果你可以用80端口,用hg serve -p 80)也可以。

 

 

当要配置的hg库超过两个时,用hg serve就不如用hgwebdir.cgi方便了(你问为什么不用hgweb.cgi,啊,

都这样了,当然选更复杂更强大的方案啦)。

 

在这里只说和apache2集成的方法,支持basic用户认证。

 

首先安装好apt-get install apache2 mercruial,再用hg clone http://selenic.com/repo/hg拿到hgwebdir.cgi。。

 

--把hgwebdir.cgi放到/var/www,(默认的web根目录)

--修改apache2中心配置(一般在/etc/apache2/site-available/default),加入一行:

ScriptAlias /hg "/var/www/hgwebdir.cgi"

--对中心仓库我们选用任读限写的模式,所以在apache中还要加一些配置:

<Location /hg>
AuthType Basic
AuthName "Mercurial repositories"
AuthUserFile /var/www/hgusers
<LimitExcept GET>
Require valid-user
</LimitExcept>
</Location>
--编辑文件/var/www/hgweb.config,内容为(设定hg仓库集中在/var/hg/repo目录下):
[collections]
/var/hg/repo=/var/hg/repo
[web]
allow_push = *
push_ssl = false

--添加两个用户的方法,是运行htpasswd命令:
#rm /var/www/hgusers (如果想清空用户名)
htpasswd -c /var/www/hgusers user1 (首次要加-c)
htpasswd /var/www/hgusers user2
--提下来别忘了重要的:加上文件权限
chmod a+r /var/www/hgusers
chmod a+x /var/www/hgwebdir.cgi
chmod a+r /var/www/hgweb.config
chmod -R a+w /var/hg/repo

好了,restart apache2,再访问http://localhost/hg,应该可以看到仓库列表,
并且支持user1和user2的push,和匿名的pull了。



P.S:
以上配置应对的是最简单的情况,如有疑问,可以留言,或参阅:
http://mercurial.selenic.com/wiki/PublishingRepositories#multiple

希望mercurial(Hg)越来越好~~~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值