原文
分支用來維護獨立的開發支線,在一些階段,你可能需要將分支上的修改合併到最新版本,或者將最新版本的修改合併到分支。
此操作十分重要,在團隊開發中,如果你是svn 的維護者此環節可以說是必不可少,因為團隊開發中如果使用了分支,那樣合併分支到主幹、或者分支合併分支的操作是必須的。
如果不使用分支,直接在主幹上修改的話,主幹版本可能會變得十分混亂。維護難度大大加大。
下面以使用tortoisesvn為例,任何svn的客戶端工具其實都大同小異。
一、分支的合併
點選選單上的合併按鈕,出現如圖視窗,一般的使用第三個選項即可。如圖所視。
點選下一步
注意填寫起始和結束的url 及版本,尤其重要。這一步將影響你合併後所得的版本。
簡單的說,「結束的url 和版本」是此次操作的最終標準。而「起始url 和版本」一般情況下必須是該分支建立的起始版本。
比方說,這次分支是從主幹100 上建立的,而分支的起始版本是101 。最終分支完成後的版本是105 。
簡單情況下,主幹上的版本沒有被更新,依然是100 。如果想把分支功能合併到主幹上的話,我們可以在主幹100 的工作副本中點選合併,然後「起始url 和版本」填寫主幹的url ,版本100( 或者head ,因為最新版本也是100) ,然後「結束的url 和版本」填寫分支的url 和版本105( 也可以是head) 即可。
操作完成後,此次合併效果會在工作副本上呈現,如果有問題請使用還原,撤銷此次修改操作。
注:其他svn 的外掛程式大同小異。
二、多分支合併
分支中的起始版本一致
比方說現在有兩個分支,分支a 和分支b 。他們分別從主幹t 建立分支。
主幹t 版本100 ,分支a 的版本101 ,分支b 的版本號102 。
當分支a 和分支b 都各自完成開發,並且提交到svn 上後。a 的版本號為110 ,而b 的版本號為115 。
此時必須兩步操作,並且操作在主幹t 的工作副本內執行:
1) 主幹t 合併分支a
起始url 和版本
主幹t 的url 、版本100
結束的url 和版本
分支a 的url 、版本110
2) 合併分支a 後再繼續合併分支b
起始url 和版本
主幹t 的url 、版本100
結束的url 和版本
分支b 的url 、版本115
注意:完成第一步的時候不必提交。
分支中的起始版本不一致
比方說現在有兩個分支,分支a 和分支b 。分支a 是從主幹t 版本100 上建立,分支a 版本101 。建立分支a 後,主幹上又做了其他修改,並且更新成版本102 。
然後主幹t 版本102 的基礎上建立分支b ,分支b 版本號為103 。
兩個分支各自開發,最終分支a 版本號為110 ,而分支b 的版本號為120 。
此時合併操作應該為三步,多的一步其實就是把起始版本統一:
1) 分支a 更新主幹100-101 的更新,在分支a 的工作副本內執行。
起始url 和版本
主幹t 的url 、版本100
結束的url 和版本
主幹t 的url 、版本101
無誤後提交修改。分支a 此時最終版本修改為121 。
2) 主幹t 合併分支a
起始url 和版本
主幹t 的url 、版本102
結束的url 和版本
分支a 的url 、版本121
3) 主幹t 合併分支b
起始url 和版本
主幹t 的url 、版本102
結束的url 和版本
分支b 的url 、版本120
看起來比較繁瑣,其實最終目的還是把起始的版本統一,然後再把主幹和分支上的差異修改新增到主幹之上。
如何使用svn進行merge
前提需求 在trunk上進行了若干個修改,想將這些修改分別merge到另外乙個branch上,但不包括其他同事在trunk的修改,假設已經知道在trunk提交時候的revision是123與234 step 1 檢查trunk上的difference,此步驟可選,如果你確定知道修改的內容是怎樣的 s...
pandas合併資料集(merge使用)
merge 合併資料集,通過left,right確定連線字段,預設是兩個資料集相同的字段 引數 說明 left 參與合併的左側dataframe right 參與合併的右側dataframe how 連線方式 inner 預設 還有,outer left right on 用於連線的列名,必須同時存...
pandas合併資料merge
snailtyan 本文主要是關於pandas的一些基本用法。usr bin env python coding utf 8 import pandas as pd import numpy as np test 1 定義資料 left pd.dataframe right pd.dataframe...