2012-10-19 46 views
1

有一些新的顧問,他們應該在部分軟件上工作,這些軟件對整個軟件沒有功能上的關鍵性。該軟件不是以模塊化方式組織的,s.t.所有這些包含非關鍵功能的源文件都不會被隔離在目錄中。限制源代碼訪問目錄中的少數文件,對新開發人員 - SVN

有沒有辦法讓諮詢人員不能分叉/分支項目,也只能在文件(非關鍵功能文件)上工作?

在這種情況下版本控制軟件是SVN。

回答

3

如果您在Windows上使用VisualSVN Server,則可以輕鬆設置目錄上的訪問權限(例如只讀權限或不可訪問權限)。你不能在SVN中的每個文件基礎上設置任何東西(它被設計爲在目錄上操作)。其他SVN系統可以通過編輯authz文件並編輯每個需要保護的目錄的條目來完成相同的操作。

對單個文件設置訪問控制將很快變成一場噩夢,因此將要保護的文件移動到幾個目錄中,並將控件放在它們上面。

+0

謝謝回答。在目錄上只讀權限,禁止分支?如果不是,那麼一些開發人員可能只是分支並完全訪問源代碼樹嗎? – icarus74

+0

分支是一個副本,只需要讀取權限。這些權限不會跟隨副本,所以是的。 – alroc

+0

@ icarus74 - 不,因爲它們已經具有對源樹的完整(只讀)訪問權限。如果你想防止這個,你必須讓一些文件不可讀。想想這樣:他們可以製作源代碼樹的zip文件嗎?那麼他們只是使用不同的方法「分支」它。如果你給某人讀取權限,他們可以讀取所有文件,他們不能做的就是提交到你的源代碼樹,以便你知道它的安全。如果他們支持並承諾這一點,對他們有好處 - 你的箱子仍然沒有動過,如果你喜歡,你可以忽略他們的變化。 – gbjbaanb

2

你可以通過執行以下操作做到這一點:

  1. 移動源文件與非關鍵功能資源庫中的另一個位置 - 我在一個文件夾級別一樣的樹幹建議。
  2. 設置顧問對現有存儲庫具有隻讀訪問權限以及對步驟1中創建的新目錄的讀/寫訪問的權限
  3. 爲步驟1中移動的文件添加SVN:Externals。從SVN 1.6你可以有individual file externals

確保你給你的顧問只讀到主幹訪問和讀寫到新目錄的訪問

第三步是有點棘手,所以我我會進一步解釋。說你原來的倉庫有類似這樣的

/trunk 
    /lib 
    - Non Critical File 1.txt 
    - Non Critical File 2.txt 
    - Other files.h 

的文件結構,你已經完成了第3步你的資料庫後會是這個樣子:

/trunk 
    /lib 
    - SVN: External to Non Critical File 1.txt 
    - SVN: External to Non Critical File 2.txt 
    - Other files.h 
/NewDirectory 
    - Non Critical File 1.txt 
    - Non Critical File 2.txt 

這樣做對每個非關鍵文件。

這將使你的顧問,在新創建的目錄

要設置SVN在現有的倉庫只能查看文件,但只更新文件:外部材料看this stack overflow post

+0

基於文件的外部**必須在相同的回購**中,因爲鏈接點 - 不起作用 –

+0

@LazyBadger好的一點,我會更新答案,指出將非關鍵文件移動到同一個位置知識庫 – GrandPaPete

相關問題