2011-07-18 32 views
2

可能重複:
How to use SVN, Branch? Tag? Trunk?svn中trunk/branch/tags的用途是什麼?

我看到幾篇文章描述的最佳SVN佈局是:

  • 幹線
    • PROJECT1
    • Project2的
    • 項目3
  • 分公司
  • 標籤

爲什麼這是推薦的佈局,究竟是應該被用於分支和標記文件夾?

+0

非常類似於這個問題:http://stackoverflow.com/questions/464417/how-to-use-svn-branch-tag-trunk - 這個問題是這個三部分的第二部分的確切副本題。 – David

+0

標籤和分支覆蓋在這裏:http://www.collab.net/community/subversion/svnbook/svn.branchmerge.tags.html – David

+0

我可以推薦[版本控制與Subversion](http://svnbook.red-這是一本免費的在線書籍。它有一個描述[通用資源庫佈局]的部分(http://svnbook.red-bean.com/en/1.5/svn.branchmerge.maint.html#svn.branchmerge.maint.layout)。 –

回答

4

/Trunk是應用程序代碼的基礎文件夾。正是在這裏,你的工作在你的下一個版本/版本上。

/科是一個文件夾,使您可以挑時間了一會兒,讓你下去發展比/中繼線的不同的路徑。/Branch的一個常見用途是爲您的開發團隊提供訪問生產中存在的應用程序當前快照,例如, /分公司/生產維護。

這個「分支」的概念讓你的團隊打造的修復/增強生產,在不影響正在進行的工作你的下一個版本,目前在發生/中繼線。分支也可以是小型功能,在大型團隊中,開發人員可以以原子方式工作,並在將來重新合併到/ Trunk中。

/標籤是一個文件夾,使您可以把你的應用程序的快照,並與只是那些特定的「建立」工作。這可以讓您的團隊在測試和查找構建之間的差異方面具有靈活性。您經常會在/ Branch中找到一個命名約定,它與您的構建有關,即。/分支/2.0.0,/分支/2.0.1,/分支/3.1.0等等。命名約定取決於你和你的團隊;保持一致!

2

總之 - branchestags可以讓你保持源代碼的多個版本並行。

典型的情況是在trunk中不斷開發(即每個里程碑/版本)以自己的名字創建一個新的branch。這種方法的

主要優點是可以分開測試/發佈的版本應該是穩定的,需要新的/野生開發(在理想的世界)僅僅修復。

branch複製的變化(即修復了錯誤),以trunk可以使用merge合併來自兩個分支變化(trunk也是一個分支)。

此外(在較新版本的SVN中)SVN保留合併變更集的歷史記錄。

有大約branching strategies好的計算器問題。