2014-01-08 53 views
0

背景是,我基本上是VSS的用戶,即視覺安全。我曾經在那裏創建分支,這樣:我在VSS中有一個名爲0.75的文件夾,即版本號,並且所有代碼文件都駐留在其中。當團隊完成0.75的工作時,我創建了一個名爲0.76的分支(文件夾),並將所有代碼從0.75分支到0.76。我也從0.75中撤消了所有的權限,這樣代碼就會凍結,並且沒有人可以在舊分支中進行更改。所有開始使用0.76。是否有必要將「Trunk」作爲SVN中的工作目錄?

問題是,我想在SVN龜完全相同的解決方案,但我無法做到這一點。這很令人困惑,因爲文件夾「Trunk」包含當前的所有代碼,即我的情況下代碼位於0.75文件夾中。我應該在哪個文件夾中創建0.76,即中繼,分支或標籤中的下一個分支?以及如何從0.75文件夾中撤銷所有團隊的權利?

+0

你應該閱讀免費的在線SVN書來學習如何使用SVN。它與VSS的工作方式不同,在使用VSS時不應嘗試使用它。 http://svnbook.red-bean.com/ –

回答

2

答案取決於你的目標。當沒有trunk文件夾時,很多Subversion工具都會中斷或需要被告知。它並不是一成不變的,但它與VSS的共同慣例使得每個人都始終創建新的分支機構。

在Subversion中,您不需要創建新的文件夾,而是始終使用trunk/。每個人都會。不鎖定文件。期。

當新版本準備就緒時,您將trunk複製到branch/0.76。所以工作流正好相反:您總是在單個文件夾中工作(並且您從不撤銷權限),並且該文件夾名爲trunk/

客戶和消費者總是從branches/獲得最新版本,其中只包含穩定版本。

現在這可能會導致各種問題。如果你想保持你的工作流程,我的建議是這樣的:創建另一個頂級文件夾,說users/。每個開發人員都會在其中獲取自己的文件夾。所以這會給我們users/asma/users/digulla

我們都獨立工作在我們的文件夾上。合併時,我們決定是誰做的。假設你要這樣做。然後我會告訴你我的「開發者分支」的版本是穩定的。

然後,您在某處查看樹幹,將您的更改合併到樹幹中。完成後,您也可以將我的更改合併到trunk中。這個版本進入測試。當我們修復bug時,我們會在我們的工作分支中執行這些操作。然後它們合併成trunk

trunk準備好發佈時,將在branches/中進行復制,併爲其指定一個新版本。

也就是說,你可能想要跳過Subversion並直接移動到像MercurialGit這樣的DVCS。它們使合併和分支幾乎無痛苦,特別是與VSS或SVN相比。

+2

穩定的發佈版本通常不在分支中,而是在標籤中。多種工作流程都是可能的。有些人更喜歡有一個穩定的後備箱,並且從不在後備箱工作:只有在準備好並穩定後纔會合併到後備箱的功能分支中。 –

+0

@Digulla非常感謝您的詳細解答。這真的很有幫助。請告訴我一件事,如果一個開發人員開始在分支/文件夾而不是主幹中工作,該怎麼辦?我認爲我們應該撤銷分支機構的編輯權限。你有什麼建議? – asma

+2

@asma:閱讀SVN書籍。整個分支點是能夠修改舊版本的軟件(維護分支)或者能夠實現隔離的新功能(功能分支)。分支應該是可編輯的。這就是他們的目的。標籤應該是不可修改的,因爲標籤代表一個凍結的交付版本的代碼。 –

相關問題