火速配置完成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)越來越好~~~


發佈了107 篇原創文章 · 獲贊 10 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章