2017-02-15 69 views
0

假設在主幹中我們有一個具有以下層級的文件夾;中繼的分支子文件夾

Code 
    Server Code 
    Client Code 
    Helper Apps 

因此,如果開發人員只需要做一個改變Client Code,是不是不行了他分支只有這個文件夾然後合併主幹完成時?

回答

0

是的,這是可能的。在顛覆中有一條規則:「文件夾是文件夾是文件夾」。意思是「trunk」或「branches」或「subfeaturetestspike12」只是顛覆的文件夾。你可以用任何文件夾做任何事情 - 它們沒有區別。即使是「標籤」也只是一個文件夾。通常你必須做點什麼來防止在這裏提交。

所以在你的情況下,你只能複製(或分支)客戶端代碼文件夾,然後再合併。或者創建一個新文件夾,從客戶端代碼複製一個文件,並且只有一個文件的分支。 Subversion沒有什麼區別 - 因爲一個文件夾是文件夾......等等。合併實質上是從一個分支(文件夾)到另一個分支(文件夾)重複更改

請記住,合併時創建部分分支可能有點危險 - 因爲分支沒有完全構建整個事物,而只是部分分支。在Apache有一些做法,例如:https://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html

+0

如果我去創建整個樹幹的分支,將空間問題或SVN只是跟蹤文件的變化,並沒有一個全新的副本? –

+0

沒有空間不是問題。創建分支(或文件夾的副本)時,Subversion會創建懶惰副本。可能每個分支額外增加4 kB。它也非常快,因爲它只創建一個新的參考(當然,如果人們檢查中繼並重新提交到別處:這將創建一個完整的新副本)。 – wemu

+0

感謝您的解釋。還有一個問題。因此,如果讓我們說我們有一個文件夾代碼,並且其中有兩個文件夾助手應用程序和客戶端代碼,是否建議/可以接受爲每個文件夾創建中繼和分支文件夾,即助手應用程序和客戶端代碼? –

相關問題