Subversion svn 分支、切換、合併、基線
目的
多個版本中並行開發,提高開發效率;
保證各個版本和各個環境(開發、測試、主幹)的獨立,避免相互影響;
通過分支與主幹的合併,這樣主幹永遠是最新、最高版本,並且都在後面的測試中,保證了質量;
用分支進行bug修改,而主幹上進行新功能的開發。分支上的bug修改完合併到主幹上;
SVN目錄結構
Trunk(開發庫) :
主幹目錄,負責新功能的開發;
此目錄下的檔案為基準檔案,放置穩定程式碼的主要環境;
開發人員日常開發的工作區,由開發者所控制;
Branches(受控庫) :
測試版本程式碼存放的地方,需要開發組長提交測試申請修改;
用於開發的分支目錄,修正當前釋出版本的bug,與此同時主幹上的開發正常進行,兩邊互不干擾;
當一個branch完成了,並且認為它足夠穩定的時候,它必須合併回trunk;
Tags(產品庫) :
存放基線庫、釋出版,是測試通過版本存放的地方;
基線,就是給版本建立一個映像(或著叫快照),並不佔用伺服器物理磁碟;
這個資料夾下的內容通常只有配置管理員可以修改,其他人只讀;
分支
分支是給源專案建立副本,讓每個工作組在各自的副本上進行開發,最後再將各個工作組的副本合併到源專案中。在此,各個副本被稱作分支(branches),源專案被稱為主幹(trunk);
分支不是複製版本內容,而是做一個內部的引用,對伺服器也沒有空間上的開銷;
分支定義規則
project name + 日期時間 + 版本號,比如:project_20150202_v1.0.3,在建立每一個分支時,必須增加標註。
建立分支
1. 專案->右鍵->Team->Branch/Tag;
2.“到URL”填寫建立新分支的路徑地址;
3.選擇當前最新的版本;
4.如果勾選了“切換工作複本為新的分支/標記”,eclipse的程式專案會自動切換到分支下;
工作複本切換
1.專案->右鍵->Team->切換;
專案裡就可以在主幹和若干分支間進行任意切換,來實現對不同版本/分支的程式進行修改提交操作;
2.選擇要切換的專案版本路徑,切換到分支下的專案路徑;
3.切換後項目路徑已改變;
標記分支
1.專案->右鍵->Team->配置分支/標記;
2.選擇一個分支專案標記為分支;
3.更改標記分支名稱
合併
當branch版本已經修改和通過測試後合併到trunk,可以合併整個專案也可以合併單個檔案;
1.分支版本做了修改,添加了一行註釋,提交SVN;
2.切換到trunk版本,選中AndroidManifest.xml檔案->右鍵->Team->合併;
3.分支合併到主幹
注:
上圖中的選項:
1) 從主幹合併到分支
2) 從分支合併到主幹
3) 將主幹上的修改合併到分支
4) 合併2個分支到主幹
5) 從主幹到分支,手工指定不需要合併的修改
6) 從主幹到分支,手工指定要合併的修改
4.選擇之前打標記的專案分支;
5.顯示合併詳細資訊,合併完成之後,trunk下的檔案將會被更新,注意這裡只是合併到本地,還需要你再檢查一下合併後的檔案是否正確,然後commit提交到伺服器;
6.建議合併後,再對trunk下對修改過的內容進行測試,最好一個點一個點的進行測試,保證合併後的內容是穩定無誤的;
標註tags
1.tags的定義規則
2. branches測試完成後,修復完bug,通過branches生成tags;
3.給標註過的tags起一個唯一的名字;