2010-06-29 209 views
13

我們正在考慮將我們的VCS轉換爲git或subversion。我更喜歡切換到git,但subversion有一個很好的功能,我沒有在git中看到:每個目錄訪問控制。git上的每個目錄權限

我們目前有cvs中的project1,project2存儲庫,具有不同的權限。 我們希望有一個存儲庫,其中兩個目錄project1 & project2具有不同的權限。它可以和git一起使用嗎?

我知道子模塊,這可能可以實現,但我們的目標是能夠在project1 & project2中進行一次單獨提交。

我們主要有知識產權問題,並希望確保有些人不能閱讀(不只是推送)一些目錄。 那麼,是否面臨挑戰或將不得不使用git-svn?

由於

回答

5

它是可行的與訪問由gitolite管理的中央回購(推/拉)。
參見its features

如果您結合起來,與子模塊(這你是知道的),你將只管理每個回購或每個分支接入,仍然同時提交PROJECT1和項目2(在一個subrepo的情況下,兩次提交:看this question

如果你堅持一個回購協議(即使你必須設置這可能與他們自己的生命週期演變,它應該爲模塊的優秀候選數據)的工作,那麼gitolite功能都包括:

file/dir NAME based restrictions

除了分支基於名稱的限制,gitolite也可以限制哪些文件或目錄可以參與改變被推

dpk提到的意見,這最後一個特徵(文件/目錄名限制)在Gitolite的conf/example.conf文件中詳述。

+0

是啊,看到了,但在我看來,這裏的權限是關於阻止推送,而不是克隆。我幾乎沒有看到克隆的東西會如何與這種讀取否認一起。 – Wam 2010-06-29 11:05:48

+0

@Wam:對於閱讀,您*有*使用子模塊的方法:gitolite將阻止任何克隆和使用正確ACL(並且子模塊是其自己的Git回購)從回購中提取。換句話說,它會阻止在回購或分支層面的拉動。 – VonC 2010-06-29 11:09:34

+0

是的,但後來我失去了「單一提交/單推/單拉」功能 – Wam 2010-06-29 11:12:09