在svn中branch/tag在乙個功能選項中,在使用中也往往產生混淆。
在實現上,branch和tag,對於svn都是使用copy實現的,所以他們在預設的許可權上和一般的目錄沒有區別
。至於何時用tag,何時用branch,完全由人主觀的根據規範和需要來選擇,而不是強制的(比如cvs)。
一般情況下,tag,是用來做乙個milestone的,不管是不是release,都是乙個可用的版本。這裡,應該是唯讀的。更多的是乙個顯示用的,給人乙個可讀(readable)的標記。
branch,是用來做並行開發的,這裡的並行是指和trunk進行比較。
比如,3.0開發完成,這個時候要做乙個tag,tag_release_3_0,然後基於這個tag做release,比如安裝程式等。trunk進入 3.1的開發,但是3.0發現了bug,那麼就需要基於tag_release_3_0做乙個branch,branch_bugfix_3_0,基於這 個branch進行bugfix,等到bugfix結束,做乙個tag,tag_release_3_0_1,然後,根據需要決定 branch_bugfix_3_0是否併入trunk。
對於svn還要注意的一點,就是它是全域性版本號,其實這個就是乙個tag的標記
,所以我們經常可以看到,什麼什麼release,基於***專案的 2***x版本。就是這個意思了。但是,它還明確的給出乙個tag的概念,就是因為這個更加的可讀,畢竟記住tag_release_1_0要比記住乙個 很大的版本號容易的多。
補充:
svn裡面的建立tag/
branch操作都是通過copy命令來實現的:在svn裡面tag和branch沒有啥區別,只是我們賦予了它們不同的含義以便於形成分支開發的概念。
本文出自
SVN中Branch的建立與合併
在使用源 版本控制工具時,最佳實踐是一直保持乙個主幹版本。但是為了應付實際開發中的各種情況,適時的開闢一些分支也是很有必要的。比如在持續開發新功能的同時,需要發布乙個新版本,那麼就需要從開發主幹中建立乙個用於發布的分支,在分支上進行bug fix,維護版本的穩定,並適時的將一些改動合併回主幹。目前大...
SVN中Branch的建立與合併
在使用源 版本控制工具時,最佳實踐是一直保持乙個主幹版本。但是為了應付實際開發中的各種情況,適時的開闢一些分支也是很有必要的。比如在持續開發新功能的同時,需要發布乙個新版本,那麼就需要從開發主幹中建立乙個用於發布的分支,在分支上進行bug fix,維護版本的穩定,並適時的將一些改動合併回主幹。目前大...
如何用好SVN的Branch
在svn裡面我們一般會建立出三個資料夾 trunk 主幹 branch 分支 tag 標籤 在我們專案一開始的時候我們會將 檔案 這邊暫時不涉及文件的管理 放在trunk底下。然後我們就不斷的開始工作了。什麼時候我們會用到branch。按我的經驗的話我們用到branch有兩種情況 專案穩定了要rel...