SVN合併 merge 的使用

2022-02-02 05:39:11 字數 1922 閱讀 8713

原文

分支用來維護獨立的開發支線,在一些階段,你可能需要將分支上的修改合併到最新版本,或者將最新版本的修改合併到分支。

此操作十分重要,在團隊開發中,如果你是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...