tortoiseSVN 合並代碼方法


http://blog.csdn.net/zhuyong0722/article/details/8965095

被svn分支和合並折騰了兩天了。適才終於搞定了分支和合並的問題,打包部署成功了。總結下,以防遺忘。項目前段時間因為要加入OSGi的blueprint方法發布和獲取服務,從svn主干上做了分支。如今分支的開發完成了,要求合並到主干中。svn的目錄結構如下:

主干trunk:

https://192.168.0.11:8443/svn/code/product/trunk/項目名稱/code/OSGiServer/plugins/com.tzf.svn.test

tag:

https://192.168.0.11:8443/svn/code/product/tag

分支branches:

https://192.168.0.11:8443/svn/code/product/branches/項目名稱/code/OSGiServer/plugins/com.tzf.svn.test

 

先 從http://subversion.apache.org/packages.html#windows 下載win2svn文件:Setup-Subversion-1.6.13。安裝,在cmd下,svn 命令就可以了。下載這個的作用有兩個:查看分支分出時的版本和解決合並沖突。

 

我這里是從分支合並到主干,

被操作對象: 主干

From : 主干的 打出分支時的版本

To: 分支的 Head版本 (最新版本)

怎么理解這個 From 和 To 呢 ? 似乎跟我們的想當然不太一樣:因為我們理解,把分支合並到主干,肯定是 From 分支,To 主干。怎么搞反了呢?

實際上, Svn 認為,我們要合並的,是從主干的某個版本開始,到分支的某個版本結束。兩邊的版本號實際上是一套系統,不會有重復。

 

比如我主干的結構如下:

 

 

現在在分支里做點修改,比如我加個類叫Bean2.java,並且提交。如圖:

 

好啦,現在將工程切換到主干里,因為從分支合並到主干,被操作對象是主干工程。

要合並得知道分支分出去時的版本號,cmd打開命令行,使用svn log --verbose --stop-on-copy branch_path查看版本更新信息,如圖:

 

找到最下版本信息,這里就是r8623,記住這個版本號,以后合並的from就是從這個版本號開始的。to就是指你想要合並的版本號,一般都是最新版本,當然也可以是指定版本。

切換到主干,選中工程,右鍵team -> 合並:

 

next,出現

 

from就是分支的路徑,下面選擇的就是剛剛記下的分支分出的版本號,to這里就是合並到那個版本,我這里選擇的最新版本。點finish,如果文件有沖突就彈出詢問框,選擇現在暫時不處理就行。



 我這里沒有出現文件沖突,點ok就基本大功告成。這時需要在主干里體檢帶修改符號的文件,完成提交就搞定了合並。

如果文件沖突了怎么辦呢,在命令行下進入沖突文件的目錄,用svn命令行客戶端鍵入:svn resolved 沖突的文件名  就可以解除沖突。

好了這是從分支到主干的合並。還有兩種合並:從主干到分支和從分支到分支,操作也是大同小異。具體參考如下:

 

從主干合並到分支

試想這樣的情況:一個項目里面,要獨立出來一個子項目,需要單獨發布版本,用到了基礎框架代碼,而基礎框架在主干中不斷修改完善,這就需要從主干合並到分支。

被操作對象: 分支

From: 分支的第一個版本(最舊版本)

To: 主干的Head版本(最新版本)

相當於從分支的第一個版本開始一直到主干最后一個版本結束合並之后,替換分支。

從分支合並到分支

有 這樣的需求:一個項目中有很多分支,這些分支需要分期上線,有多個工作並行,但每一期之間不能相互影響,這就可以打出幾個tag(也是分支),從主干 copy而來。其他主干根據排期分別合並到這些tag中來。比如有prjTag1和prjTag2,model1、model2需要合並到prjTag1 中,model3、model4需要合並到prjTag2中。拿prjTag1舉例:

在prjTag1的work copy中,merge

 

From : 主干的 打出分支時的版本

To: 分支的 Head版本 (最新版本)

注意: From不是本Tag的某個版本,而是之前主干打出分支時的版本,最終Merge到prjTag1的work copy,而prjTag1是找不到當初打分支時的版本的。

 

 

被svn合並折騰了兩天,也許還有OSGi復雜的原因,問題算是解決了,但是也是非常的繁瑣。希望能看到網友朋友更好的方法分享。

 


免責聲明!

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



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