2012-04-23 52 views
0

我們公司的Intranet使用的是mercurial,但由於防火牆的限制,暫時無法通過其他方法發佈共享磁盤。 我知道這不是理想的或推薦的方法,但是,它現在會做(如果我最終得到一臺服務器,我設置了RhodeCode)。如何禁止推送到共享磁盤方法發佈的Mercurial存儲庫?

我們發現通過Windows使用我們的Active Directory帳戶(右鍵單擊文件夾,與特定人員共享),我們可以非常容易地通過sharing our repo folder分享我們的更改,但是我想完全阻止有人推送到存儲庫。

我99%確定HTTP沒有被使用,所以傳統的方法不應該工作。 我正在尋找解決方法,因爲我不認爲有反正直接從Mercurial配置限制這個。

+0

您是否考慮過簡單地在涉及的文件夾上使用文件級訪問權限? – 2012-04-23 21:31:22

+0

是的,它不起作用,因爲更改文件是遠程計算機中的hg進程。讀訪問只會阻止他們,例如,刪除我的.hg文件夾,更多修改我的源文件 – dukeofgaming 2012-04-23 21:34:56

回答

2

只要你確定人正在使用pushpull擺脫共享目錄的更改(這是唯一安全的方式!),你仍然可以使用鉤在這些倉庫封鎖推動。像這樣的事情在倉庫中的.hg/hgrc文件將防止推:

[hooks] 
pretxnchangegroup.denyall = /bin/false 

其中/bin/false是Windows可執行任何始終返回false /非零。

此外,請考慮通過在其中執行hg update null使共享存儲庫裸露存儲庫。這將刪除工作目錄中的所有文件,因此沒有人試圖在其中進行編輯。

+0

不應該更換組以避免通過網絡傳輸數據? – dukeofgaming 2012-04-23 21:26:46

+0

很有可能。只要現有的AclExtension使用可能是最好的選擇。 – 2012-04-24 16:19:34

0

每個人都可以分享他們的回購(只讀),並要求其他人 - 包括官方回購的維護人員 - 從其中撤出。

相關問題