SVN使用教程之-分支/標記 合併 subeclipse

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

下面是在eclipse下使用subeclipse插件詳細使用過程:
首先建立一個工程,名字叫Facebook
1.建立分支,爲新的分支指定訪問URL:Facebook3[註釋不要忘了]
e1e3230b-b8d7-342a-b876-df3cf9fd37d4.jpg

14c7ed56-b067-3fbb-a334-df64f9f14909.jpg

d638badf-6495-323e-8c1c-9523c2b57fb4.jpg

2.建立好分之後,使用“切換”功能切換到分支下進行開發。
d69c8935-42f9-308f-b9ac-66705eec5d8d.jpg

2728a99a-da56-3c21-9133-f8ca234b2ddb.jpg
我新建了一個FB3.html的文件並在分支下進行提交。
779bd7bd-d5d2-3ce7-ac11-1d585e06addb.jpg

5d98cffa-f531-3276-8c41-46514e6fa064.jpg

3.切換回trunk版【即URL爲Facebook的版本】
2825a3df-7cbd-3656-97b7-c33f4a936670.jpg
你會發現trunk版裏並沒有出現我們剛剛提交的FB3.html,因爲FB3.html是屬於分支的,接下來我們要做的就是“合併”,通過合併,我們可以將分支下進行的更改合併到trunk版裏。
186a04fe-acdf-328a-85ae-1af6884c805e.jpg

17f41fcf-5c7b-3225-9b45-e3cd35723b2a.jpg

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

c069cc72-88ff-30d5-b134-4de364d5b5e7.jpg

4.點擊合併,你會發現trunk版下新增了一個文件FB3.html
這樣我們就將分支下所做的改動合併到了trunk版裏。
1182f818-c7ae-31c4-b898-272a3d6fb531.jpg

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


整個過程的SVN命令行輸出如下:
Xml代碼複製代碼收藏代碼spinner.gif
  1. copy-rHEADsvn://192.168.1.192/placii/staggingarea/xiangqi/Facebooksvn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3

  2. propsetsubclipse:tags"1538,Facebook2,/Facebook2,branch

  3. 1540,Facebook3,/Facebook3,branch"E:/myeclipse/workspace/Facebook

  4. switchsvn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3E:/myeclipse/workspace/Facebook-rHEAD

  5. Atrevision1541.

  6. add-NE:\myeclipse\workspace\Facebook\WebRoot\FB3.html

  7. AE:/myeclipse/workspace/Facebook/WebRoot/FB3.html

  8. commit-m""E:/myeclipse/workspace/Facebook/WebRoot/FB3.html

  9. AddingE:/myeclipse/workspace/Facebook/WebRoot/FB3.html

  10. Transmittingfiledata...

  11. Committedrevision1542.

  12. switchsvn://192.168.1.192/placii/staggingarea/xiangqi/FacebookE:/myeclipse/workspace/Facebook-rHEAD

  13. DE:/myeclipse/workspace/Facebook/WebRoot/FB3.html

  14. Updatedtorevision1542.

  15. =====FileStatistics:=====

  16. Deleted:1

  17. mergesvn://192.168.1.192/placii/staggingarea/xiangqi/Facebook@HEADsvn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3@HEADE:/myeclipse/workspace/Facebook

  18. AE:/myeclipse/workspace/Facebook/WebRoot/FB3.html

  19. Mergecomplete.

  20. =====FileStatistics:=====

  21. Added:1

copy -rHEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3
propset subclipse:tags "1538,Facebook2,/Facebook2,branch
1540,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD
    At revision 1541.
add -N E:\myeclipse\workspace\Facebook\WebRoot\FB3.html
    A         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
commit -m "" E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
    Adding         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
    Transmitting file data ...
    Committed revision 1542.
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD
    D  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
    Updated to revision 1542.
    ===== File Statistics: =====
    Deleted: 1
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
    A  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
    Merge complete.
    ===== File Statistics: =====
    Added: 1


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



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

260aa46c-e184-3b93-a2de-373095ced812.jpg
假設我原來的項目是placii,建立了一個分支是placiiStore.現在需要將分支placiiStore合併到主幹線上。那配置應該如圖所示
1.【起始路徑】:這裏需要填分支的路徑。
2.第一個修訂號:建立分支時的版本號。在建立分支時候記錄下svn的console
我的是
Xml代碼複製代碼收藏代碼spinner.gif
  1. copy-rHEADsvn://192.168.1.192/placii/trunk/code/server/source%20code/placiisvn://192.168.1.192/placii/trunk/code/server/source%20code/placiiStore

  2. propsetsubclipse:tags"1527,placiiStore,/sourcecode/placiiStore,branch

  3. 1549,placiiStore,/source%20code/placiiStore,branch"E:/myeclipse/workspace/placii

  4. switchsvn://192.168.1.192/placii/trunk/code/server/sourcecode/placiiStoreE:/myeclipse/workspace/placii-rHEAD

  5. Atrevision1550.

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
propset subclipse:tags "1527,placiiStore,/source code/placiiStore,branch
1549,placiiStore,/source%20code/placiiStore,branch" E:/myeclipse/workspace/placii
switch svn://192.168.1.192/placii/trunk/code/server/source code/placiiStore E:/myeclipse/workspace/placii -rHEAD
    At revision 1550.

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章