上周接到PM大人的新任務,給主庫做分支。
首先,先來看下SVN預設的三大檔案夾,這三個檔案夾建完庫之後,一般預設會有,但是以前用的時候,還是比較簡陋的,幾乎都是大家送出到trunk裡面,整個開發流程下來,一直用的是這個庫。
那麼,這三個檔案夾都應該用來放什麼東西呢?
分支(Branching)
分支起始的時候是主線的一個拷貝,但是其後他将保持獨立性,擁有自己的變化。
有時你需要建立一個分支,例如你需要開發一個新功能,但是你又不希望新功能開
發完成之前影響主線的開發。
标記(Tagging)
标記是版本庫中一個特定版本的快照。通常當項目進展到裡程碑或者你預備發 布
release 版本的時候你需要建立一個标簽。 雖然也可以對标記進行 Commit, 但是一般
都不這麼做。
合并(Merging)
當分支開發進行到某個特定場景的時候,通常需要将更改合并到主線中。例如,如
果開發的心功能已經穩定,那麼分支就可以合并到主幹了。
這邊的項目是,項目剛上線,但是有很多bug,也有很多新需求,是以,将現在主庫中的代碼放到了分支一份,然後大家重定位到分支庫,修改分支庫内容。當測試通過後,再合并到主庫中。
在檢出的trunk目錄下的項目上,選擇分支(其實分支和打tag操作是很一樣的)。

之後,我們在伺服器上看,就會看到branch目錄下多出了"分支測試2";
檢視版本分支圖:
可以看出各個分支版本是從哪個版本分支出去的。
當我們有的多個分支開發完畢,這是就需要合并回主庫。
當選擇合并完成之後,發現本地工作副本變為修改過未送出的狀态。
此時,我們還有将本地工作副本送出一下,才能真正合并。
其實SVN的管理還是比較集中式的管理,跟現在很多人用的集中式的GIT相比,SVN很少分支。。。N多。。。
最後想說,版本控制不是源碼管理。。。。各位開發請自重。。。。