萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> 使用TortoiseSVN新建及合並分支圖文教程

使用TortoiseSVN新建及合並分支圖文教程

   打開trunks目錄,在trunks目錄下新建兩個文本文件A.java,B.java:

使用TortoiseSVN新建及合並分支圖文教程 三聯

  打開A.java輸入以下內容:

  B.java文件可以隨機輸入些,本例中主要用於觀察後續是否變化。

  兩個文件編輯完成後使用SVN Commit將更改提交到SVN:

  下面開始創建分支:

  1、在trunks上點擊右鍵,在TortoiseSVN菜單中選擇Branch/Tag;

  2、在To path輸入框中輸入新建分支的路徑,一般是:/branches/分支名,也就是相當於分支保存的路徑名;

  3、在下面選擇HEAD revision in the repository,為當前SVN中trunks目錄下最新的代碼建立分支,如果需要為制定的revision建立分支,可以進行選擇;

  4、點擊OK分支建立完成。

  打開branches目錄,發現目錄依然為空,沒有剛才建立的分支,這是因為分支建立的操作是在服務器端完成的,當需要編輯分支時,在branches目錄點擊Update,剛才建立的分支就會下載下來。

  建立分支的過程會非常的快,不會因為主干中的文件多而降低速度,原因後續說明。

  使用TortoiseSVN合並分支

  第二篇中舉過例子,有可能存在主干、分支並行開發的情況,下面我們模擬一下。

  將剛才新建的分支Update下來,打開分支中的A.java,對其進行編輯如下:

  在打開trunks主干中的A.java,對其進行編輯如下:

  對以上兩個文件的改動基本上模擬了分支、主干並行的情況,兩個目錄下的同一個文件被分別修改。

  將以上兩個文件的改動Commit,下面進行合並操作。

  下面開始合並分支到主干:

  1、在trunks上點擊右鍵,在TortoiseSVN菜單中選擇Merge;

  2、在彈出的窗口中選擇第二項,可以理解為合並兩個樹;

  3、在From和To中都選擇要合並的分支目錄;

  4、在From的Revision選擇創建分支時的那個Revision,具體就是點擊Show log,選擇最下面那一條;

  5、在To的Revision選擇HEAD Revision,也就是最新操作;

  6、點擊Next,下一個頁面使用默認項,點擊Merge;

  7、合並完成。

  這時候會發現trunks目錄下的文件已被修改,這時候的合並操作是在本地完成的,並沒有提交到SVN,這與分支建立時有區別,請注意。

  也就是說如果你在本次合並中發現問題,只需要對trunks目錄Revert,放棄本次合並即可。

  可以看一下trunks目錄合並後的A.java文件,大家與前面對照下,已達到我們想要的合並效果:

  創建分支時發生了什麼

  SVN服務器在創建分支時的拷貝是非常有效率的,瞬間就可以完成,並且只需要很少的空間來存儲,所以不需要擔心分支建立過多導致項目倉庫膨脹的問題。

  可以理解為SVN在服務器中存儲的是文件的引用,而非物理上的拷貝。

  不要多次合並同一個分支到主干

  合並分支有一個原則,就是不要對一個分支多次合並到主干,雖然你有可能在合並後又對分支進行了修改,之所以這樣說是有原因的。

  上面提到在合並分支時,在From的Revision選項中需要選擇合並的其實版本,如果是第一次合並只需要選擇最早的那個版本即可,但如果合並過一次,你真的能記得你上次合並時最後的Revision是多少嗎?

  良好的操作是合並後新建分支。

  合並主干到分支

  其實合並是個可逆的過程,合並主干到分支與合並分支到主干正好是相反的操作,大家如果會了一種另一種應該非常簡單。

  這裡我就不演示了,如果真的需要的話可以在博客中評論,大家確實需要的話我會寫出來。

  記錄,為更好的自己!

copyright © 萬盛學電腦網 all rights reserved