2010-11-03 48 views
3

我正在使用mercurial作爲我的工作流程的一部分,它運行良好。儘管我有一個小問題。當我從我的中央存儲庫下拉到我的Linux Web服務器以進行升級時,我正在使用「root」用戶。似乎將所有者和組分配給任何新的或已更改的文件的「root」。使用mercurial設置文件所有權

不幸的是,我遇到了其他困難,所以我總是不得不經過並將所有文件重置爲適當的組和所有者(Web服務器上的非root用戶)。

是否有某種方法可以讓mercurial自動執行此操作,或者有人可以快速執行此操作?我正在使用外殼並且必須鍵入

chown -R username /home/username 

我嘗試使用chgrp做類似的事情。整個事情似乎很混亂,我懷疑有一個更簡單的方法來完成我所需要的。從存儲庫中提取時是否有設置所有者和組的方法?

+0

你不應該需要是root用戶拉你的回購添加多個掛鉤。 – mikerobi 2010-11-03 15:41:49

回答

8

你應該拉着你,因爲你不是根,那麼你就不會有這個問題。但是,如果由於某些原因而不可行,則可以始終使用更新掛鉤來更正文件權限。在您的存儲庫的.hg/hgrc文件,你會把:

[hooks] 
update = chown -R username:usergroup /home/username 

而且該命令會自動運行後,每個hg update(或hg pull -u)。

+0

太棒了。 「用戶」帳戶沒有shell訪問權限,我想保持這種方式,這就是爲什麼我試圖用root來做到這一點。再次感謝! :) – neomech 2010-11-05 13:48:35

+1

在UNIX上只有root可以更改所有者和組... – gavenkoa 2011-10-20 21:59:36

+0

如何添加2個鉤子?我需要瀏覽整個目錄,併爲其排除另一個目錄 – Kreker 2014-03-27 09:03:06

1

您可以通過定義每一個單獨

[hooks] 
    update.command1 = chown -R username:usergroup /home/username 
    update.command2 = chown username2:usergroup2 /home/username/excludeme 
相關問題