Q1: So is there a way to restructure this and retain the history?
就像你在你的評論中寫道,如果你有SYS PRIVS就可以在倉庫,並保持低於A和B的所有文件的歷史,但這樣做mv
模塊,你失去了的歷史,/A曾經是Module1/A和/ B曾經在Module1/B中(更不用說構建腳本可能會破壞)。 Subversion
通過提供記錄模塊的移動/重命名歷史的move
(或重命名)命令爲您解決此問題。
Q2: Is there a way to set up security so that certain users can check out Module1/A only and not Module1/B ? and vice-versa?
有肯定的是,使用組權限。在該頁面中, http://www.linux.ie/articles/tutorials/managingaccesswithcvs.php 這裏我指的是在情況下,剪斷該頁面永遠消失
每一個模塊中的組
我們已經看到早期如何創建幫 cvsusers組與 協調開發人員的工作。我們可以擴展這個 的方法來允許目錄級別 簽入限制。
在我們的例子,讓我們說, 模塊「cujo」是爲R/W傑克 和約翰,以及模塊「嘉莉」是 R/W爲John和Jill。我們將創建 兩組,g_cujo和g_carrie,並 添加相應的用戶每個 - 在 /etc/group中,我們添加
g_cujo:x:3200:john,jack
g_carrie:x:3201:john,jill>
現在在庫(根),運行
find $CVSROOT/cujo -exec chgrp g_cujo {} \;
find $CVSROOT/carrie -exec chgrp g_carrie {} \;
保證,和以前一樣,所有的 目錄有GID位設置。
現在,如果我們在 倉庫一看...
[email protected]:~/cvs$ ls -l
total 16
drwxrwsr-x 3 john cvsadmin 4096 Dec 28 19:42 CVSROOT
drwxrwsr-x 2 john g_carrie 4096 Dec 28 19:35 carrie
drwxrwsr-x 2 john g_cujo 4096 Dec 28 19:40 cujo
,如果傑克試圖提交修改 嘉莉...
[email protected]:~/carrie$ cvs update
cvs server: Updating .
M test
[email protected]:~/carrie$ cvs commit -m "test"
cvs commit: Examining .
Checking in test;
/home/john/cvs/carrie/test,v <-- test
new revision: 1.2; previous revision: 1.1
cvs [server aborted]: could not open lock file
`/home/john/cvs/carrie/,test,': Permission denied
[email protected]:~/carrie$
但在cujo,沒有問題。
[email protected]:~/cujo$ cvs update
cvs server: Updating .
M test
[email protected]:~/cujo$ cvs commit -m "Updating test"
cvs commit: Examining .
Checking in test;
/home/john/cvs/cujo/test,v <-- test
new revision: 1.2; previous revision: 1.1
done
[email protected]:~/cujo$
添加用戶的過程是現在 更復雜一點,它 可能。要創建一個新的CVS用戶,我們 必須創建一個系統用戶,將他們 添加到他們可能寫入的 模塊對應的組,並且(如果 您使用的是pserver方法) 爲他們生成密碼,並將 添加到CVSROOT/passwd的條目中。
要添加一個項目,我們需要創建一個 組,進口來源,更改所有文件的 集團在 庫,並確保在執行位GID 設定的設置對所有 目錄內該模塊,並將相關用戶添加到組中。
毫無疑問,我們需要更多的 來完成所有這些操作,比當我們用尖刺 刺戳人時更需要。在這種方法中,我們從來沒有 添加系統用戶或組或 更改目錄上的組 - 所有 這是照顧一旦我們設置 存儲庫。這意味着一個不帶動力的用戶可以成爲CVS管理員,而不需要 機器上的根證書。
好的。所以,在我看來,如果我有文件系統權限,我可以只對CVS服務器,轉到cvs root並重新構建目錄。在cvsroot下移動的目錄將作爲新模塊檢出。有沒有人看到任何問題? – 2011-06-07 21:21:58