SVN使用教程之——分支、合並


 
首先說下為什么我們需要用到分支-合並。比如項目demo下有兩個小組,svn下有一個trunk版。由於客戶需求突然變化,導致項目需要做較大改動,此時項目組決定由小組1繼續完成原來正進行到一半的工作【某個模塊】,小組2進行新需求的開發。那么此時,我們就可以為小組2建立一個分支,分支其實就是trunk版【主干線】的一個copy版,不過分支也是具有版本控制功能的,而且是和主干線相互獨立的,當然,到最后我們可以通過【合並】功能,將分支合並到trunk上來,從而最后合並為一個項目。

下面是在eclipse下使用subeclipse插件詳細使用過程:
首先建立一個工程,名字叫Facebook
1.建立分支,為新的分支指定訪問URL:Facebook3[注釋不要忘了]






2.建立好分之后,使用“切換”功能切換到分支下進行開發。



我新建了一個FB3.html的文件並在分支下進行提交。




3.切換回trunk版【即URL為Facebook的版本】

你會發現trunk版里並沒有出現我們剛剛提交的FB3.html,因為FB3.html是屬於分支的,接下來我們要做的就是“合並”,通過合並,我們可以將分支下進行的更改合並到trunk版里。




下面是合並的主要配置:
起始路徑:trunk版的路徑【若需要把trunk版的改動合並到分支則相反】
目標路徑:從哪里獲取改動【這里是分支路徑】
你可以使用指定的版本號,這里采用最新修訂版。



4.點擊合並,你會發現trunk版下新增了一個文件FB3.html
這樣我們就將分支下所做的改動合並到了trunk版里。


值得注意的是:
1.在建立分支的時候最好添加注釋。
2.進行合並前最好保證兩個版本都是干凈的【即沒有未提交或者沖突的文件存在】
3.合並時的目標路徑:需要把誰的改動合並到其他版本就填誰的URL。


整個過程的SVN命令行輸出如下:
Xml代碼 復制代碼   收藏代碼
  1. copy -rHEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3   
  2. propset subclipse:tags "1538,Facebook2,/Facebook2,branch   
  3. 1540,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook   
  4. switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD   
  5.     At revision 1541.   
  6. add -N E:\myeclipse\workspace\Facebook\WebRoot\FB3.html   
  7.     A         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html   
  8. commit -m "" E:/myeclipse/workspace/Facebook/WebRoot/FB3.html   
  9.     Adding         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html   
  10.     Transmitting file data ...   
  11.     Committed revision 1542.   
  12. switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD   
  13.     D  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html   
  14.     Updated to revision 1542.  
  15.     ===== File Statistics: =====   
  16.     Deleted: 1   
  17. merge svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook@HEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3@HEAD E:/myeclipse/workspace/Facebook   
  18.     A  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html   
  19.     Merge complete.  
  20.     ===== File Statistics: =====   
  21.     Added: 1  


希望本文能有所幫助。
其他參考資料:
http://www.iteye.com/wiki/subclipse/1626-subclipse-getting-started-guide-and-reference-c



===========================關於合並==========================
我在合並的時候發現,合並后文件被直接覆蓋掉了,而沒有出現本該出現的【沖突】,后來經過仔細研究發現,是操作問題。


假設我原來的項目是placii,建立了一個分支是placiiStore.現在需要將分支placiiStore合並到主干線上。那配置應該如圖所示
1.【起始路徑】:這里需要填分支的路徑。
2.第一個修訂號:建立分支時的版本號。在建立分支時候記錄下svn的console
我的是
Xml代碼 復制代碼   收藏代碼
  1. copy -rHEAD svn://192.168.1.192/placii/trunk/code/server/source%20code/placii svn://192.168.1.192/placii/trunk/code/server/source%20code/placiiStore   
  2. propset subclipse:tags "1527,placiiStore,/source code/placiiStore,branch   
  3. 1549,placiiStore,/source%20code/placiiStore,branch" E:/myeclipse/workspace/placii   
  4. switch svn://192.168.1.192/placii/trunk/code/server/source code/placiiStore E:/myeclipse/workspace/placii -rHEAD   
  5.     At revision 1550.  

3.目標路徑:這里使用起始路徑。
4.目標版本號:使用最新版即 HEAD.

點擊合並,如果有人在主干線版本上做了更改,而你再分支上也對這個文件作了更改,將會產生沖突。然后手動把沖突的代碼合並一下,右鍵-標記為解決,這就達到我們的目的了。

 

小龍在線:對於SVN的分支/合並操作,確實挺有用的,果斷轉載~



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM