Mercurial(Hg)之用戶權(quán)限管理

在BitBucket上褪储,對于某一個私有倉庫,可以設(shè)定這個倉庫的用戶以及權(quán)限慧域。說權(quán)限鲤竹,其實也就兩種,一個是讀權(quán)限昔榴,也就是說對某個用戶是否可見辛藻。另外一個是寫權(quán)限,也就是某用戶是否可以將自己的更改寫入到庫中互订。

如果可以接入廣域網(wǎng)吱肌,BitBucket也就能搞定權(quán)限的問題了。然而仰禽,最近公司要在局域網(wǎng)的環(huán)境內(nèi)辦公氮墨,而領(lǐng)導(dǎo)又想控制權(quán)限的問題,由于一開始大家都不知道怎么設(shè)定水銀的權(quán)限問題吐葵,于是就想著要回到SVN上了规揪。但我們組內(nèi)的同事其實都只接觸過水銀,沒有接觸過SVN折联。況且水銀管理源代碼確實方便一些粒褒。因此最近沒啥事的我就開始琢磨如何用水銀來進(jìn)行權(quán)限管理。繞過的彎子就不多說了诚镰,就直接切入實驗成功的路子吧奕坟。重要的參考文獻(xiàn)應(yīng)當(dāng)先列一下,以示對先賢的尊重:

文獻(xiàn)中引用的重要官方文獻(xiàn)有兩篇清笨,也在此列出:

本來月杉,把這些參考文獻(xiàn)全部列出,也就可以了抠艾。但是使用FATKUN'S BLOG的教程時有幾次碰壁苛萎,所以想再寫出一個新的版本來,并且將注意事項也一并列出检号。

需要提一句的是腌歉,由于目前公司用Windows Server來做服務(wù)器,因此以下所述都是在Windows上搭建水銀服務(wù)器并管理用戶權(quán)限的過程齐苛,如果希望在Linux服務(wù)器上搭建的朋友請繞道或等我一段時間翘盖。

軟件包的安裝

如果是對水銀本身還比較不熟悉的朋友,請查看我的水銀系列文章凹蜂。在水銀系列文章中馍驯,提到了一個非常流行的軟件阁危,叫TortoiseHg。在水銀系列文章中汰瘫,提到了一個非常流行的軟件狂打,叫TortoiseHg。這個軟件是一定要裝滴混弥。用它來管理倉庫趴乡,特別省心。如果僅僅想做簡單的不加權(quán)限控制的服務(wù)端蝗拿,那么TortoiseHg就夠了浙宜。使用Hg)。這個軟件是一定要裝滴蛹磺。用它來管理倉庫粟瞬,特別省心。如果僅僅想做簡單的不加權(quán)限控制的服務(wù)端萤捆,那么TortoiseHg就夠了裙品。使用Hg。在水銀系列文章中俗或,提到了一個非常流行的軟件市怎,叫TortoiseHg。這個軟件是一定要裝滴辛慰。用它來管理倉庫区匠,特別省心。如果僅僅想做簡單的不加權(quán)限控制的服務(wù)端帅腌,那么TortoiseHg就夠了驰弄。使用Hg) serve就可以讓別人都來訪問你的倉庫了。但是速客,如果要做權(quán)限的管理戚篙,那還要安裝下面幾個軟件。

  • Python:在搭服務(wù)器的過程中溺职,有一個腳本是用Python語言來寫的岔擂,因此需要安裝Python來解析。
  • Mercurial For Python:是水銀針對Python的一個庫浪耘。有兩點注意事項乱灵,一個是Python的版本號要一致。比如七冲,我安裝的是Python2.7痛倚,則自然應(yīng)當(dāng)安裝Mercurial For Python2.7。另外一點位數(shù)要一致癞埠。比如状原,安裝的Python是32位的,那么Mercurial For Python就一定要用32位的版本苗踪,而不能用64位的版本颠区。在安裝Mercurial For Python時,會自動檢測Python的安裝位置通铲。如果沒有檢測到毕莱,那就一定有哪里弄錯了。這里其實蘊含了另外一個注意點颅夺,那就是:必須先安裝Python朋截,再安裝Mercurial For Python。
  • XAMPP:XAMPP是一個非常牛逼的軟件吧黄,其含義是Apache+MariaDB+PHP+Perl部服。感覺是用來建站的超級軟件。這里用XAMPP拗慨,其實只用了里面的Apache服務(wù)而已廓八。

注意事項

  • 最好是使用沒有空格的路徑!例如c:\Program Files這樣的路徑最好不要用赵抢,不然可能出現(xiàn)亂七八糟的錯誤剧蹂。
  • 在配置文件中路徑使用“/” 或者使用”\”,例如D:\\xampp\\htdocs

倉庫的倉庫

在服務(wù)器上烦却,要存放的倉庫肯定不止一個宠叼,有各個項目組的不同項目。但是為了方便管理其爵,請將所有的水銀倉庫都放在一個共同的文件夾中冒冬,這個文件夾,就可以被看成是倉庫的倉庫了摩渺。

我的倉庫的倉庫的路徑是D:\Development窄驹。

配置hgwebdir.cgi

在xampp安裝目錄htdocs下,建立一個hg文件夾
<xampp install>\htdocs\hg
在hg目錄下证逻,建立一個hgwebdir.cgi文件乐埠,把下面的內(nèi)容拷貝進(jìn)去

#!C:/Python27/python.exe
#
# An example hgweb CGI script, edit as necessary
# See also http://mercurial.selenic.com/wiki/PublishingRepositories
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "E:\\xampp\\htdocs\\hg\\hgweb.config"
# Uncomment and adjust if Mercurial is not installed system-wide:
import sys
sys.path.insert(0, "C:\\Python27\\Lib\\site-packages")
# Uncomment to send python tracebacks to the browser if an error occurs:
import cgitb
cgitb.enable()
from mercurial import demandimport
demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)

  • 第一行表明這是一個python程序,且給出了你python程序的位置囚企。記得換成你自己的丈咐。
  • config那一行給出了我們將要創(chuàng)建的另外一個配置文件的路徑。換成你自己的龙宏。
  • sys.path.insert那一行是把你安裝的Mercurial For Python的路徑添加到搜索路徑中棵逊。換成你自己的。
  • 其它地方不需要改變银酗。

配置hgweb.config

再建立一個hgweb.config

[paths]
/ = D:/Development/*
 
[web]
descend = True
allow_push = false
allow_pull = false
allow_read = *
push_ssl = false
style = gitweb

  • [paths]下面的一行表示將D:/Development/下的所有水銀倉庫都顯示出來辆影。
  • [web]下面的descend表明了是否查找D:/Development下的子目錄中是否有倉庫徒像。
  • [web]下面的其它一些應(yīng)該是全局設(shè)置,它與每個倉庫內(nèi)的hgrc(倉庫設(shè)置)之間的關(guān)系如何蛙讥,我目前還不清楚锯蛀。

配置httpd.conf

打開<xamp install path>/apache/conf/httpd.conf文件,在最末位加入:

# 目錄配置
ScriptAliasMatch ^/hg(.*) E:/xampp/htdocs/hg/hgwebdir.cgi$1
<Directory "E:/xampp/htdocs/hg">
  Options ExecCGI FollowSymLinks
#去掉SSLRequireSSL的#號就強迫使用ssl來訪問
 #SSLRequireSSL
</Directory>

具體含義暫不清楚次慢。

現(xiàn)在即可以重啟apache服務(wù)旁涤,重啟后,通過http://localhost/hg/訪問迫像。接下來是添加用戶和用戶的權(quán)限管理劈愚。

用htpasswd.exe建立用戶密碼文件

htpasswd.exe在apache的bin目錄可以找到,使用方法主要有

htpasswd -c 文件名 用戶名               //參數(shù)-c創(chuàng)建密碼文件闻妓,輸入后會提示你輸入密碼
htpasswd 文件名 用戶名                 //如果用戶名一樣會更新密碼

舉個例子菌羽,我現(xiàn)在要建兩個用戶

htpasswd -c hguser xingzhi
htpasswd hguser yian

這時會得到一個hguser的文件,把它拷貝到conf目錄下

修改httpd.conf配置

在httpd.conf配置最末尾加入由缆,注意路徑改為你的

<Location /hg>
    Order Allow,Deny
    Allow from all
    AuthType Basic
    AuthName "Mercurial repositories"
    AuthUserFile "E:\\xampp\\apache\\conf\\hguser"
    Require valid-user
</Location>

這樣就可以了算凿,重啟瀏覽器,試試從瀏覽器訪問hg的網(wǎng)頁犁功?會提示你輸入用戶名和密碼氓轰。

針對某些項目的權(quán)限設(shè)置

在服務(wù)器存放項目的文件中,在.hg目錄新建一個hgrc文件浸卦,里面可以配置為

[web]
push_ssl = False
allow_pull = xingzhi, yian
allow_push = xingzhi, yian
allow_read = xingzhi, yian

好了署鸡,現(xiàn)在呢,你要做的就是在每一個倉庫中限嫌,規(guī)定哪些人有讀的權(quán)限靴庆,哪些人有push和pull的權(quán)限就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怒医,一起剝皮案震驚了整個濱河市炉抒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稚叹,老刑警劉巖焰薄,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扒袖,居然都是意外死亡塞茅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門季率,熙熙樓的掌柜王于貴愁眉苦臉地迎上來野瘦,“玉大人,你說我怎么就攤上這事”薰猓” “怎么了吏廉?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惰许。 經(jīng)常有香客問我席覆,道長,這世上最難降的妖魔是什么啡省? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮髓霞,結(jié)果婚禮上卦睹,老公的妹妹穿的比我還像新娘。我一直安慰自己方库,他們只是感情好结序,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纵潦,像睡著了一般徐鹤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上邀层,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天返敬,我揣著相機(jī)與錄音,去河邊找鬼寥院。 笑死劲赠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秸谢。 我是一名探鬼主播凛澎,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼估蹄!你這毒婦竟也來了塑煎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤臭蚁,失蹤者是張志新(化名)和其女友劉穎最铁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垮兑,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡炭晒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了甥角。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片网严。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嗤无,靈堂內(nèi)的尸體忽然破棺而出震束,到底是詐尸還是另有隱情怜庸,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布垢村,位于F島的核電站割疾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嘉栓。R本人自食惡果不足惜宏榕,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望侵佃。 院中可真熱鬧麻昼,春花似錦、人聲如沸馋辈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迈螟。三九已至叉抡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間答毫,已是汗流浹背褥民。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留洗搂,地道東北人轴捎。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蚕脏,于是被迫代替她去往敵國和親侦副。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容