SVN分支合併的使用記錄

2021-09-01 20:01:51 字數 1794 閱讀 9261

對應 svn 版本最低為 1.5,因為分支、合併的很多功能都是 1.5(release notes ) 才加進來的。

假設"^/trunk"是主幹的 url,當前目錄為分支的工作副本。該命令同步主幹的最新修改到當前工作副本,用於使分支跟主幹保持同步。svn 會通過 svn:mergeinfo 屬性來記錄當前工作副本已經合併過的版本號,然後在每次合併時選擇合適的(eligible)版本進行合併。當然,也可以自己手動指定合併版本m到n的修改。

假設"^/branches/quota"是分支的 url,當前目錄為主幹的工作副本。該命令將分支的最新版本(@head)跟主幹的最新版本進行比較,將差異實施到當前工作副本,用於將在分支上完成的工作合併回主幹。

分支使用 --reintegrate 合併回主幹後,如果繼續在該分支上開發,當需要同步主幹的修改到分支過來時,缺省會包括之前 reintegrate 的修改,而這些修改已經在分支上做過了,所以這樣往往會導致衝突。這也是前面「最佳實踐」中最後乙個建議的乙個原因。當然,想要使這個分支繼續可用也是可以的,這就需要使用下面這第三種合併。

假設當前目錄為分支的工作副本,該命令將主幹的版本25標記為已合併到當前工作副本,但並不會進行實質性的合併,這樣下次合併主幹到分支時,該版本的修改就會被跳過,避免修改被重複實施導致的衝突。其實這種合併就是改一下 svn:mergeinfo 而已,但直接修改太危險了,所以弄了這樣乙個所謂合併來規範操作。

在 eclipse 中有兩個比較流行的 svn 外掛程式:subclipse 和 subversive,關於兩者的討論有很多,例如這裡 。本文只介紹 subclipse。

上圖是 subclipse 進行合併操作時的介面,該圖所對應的操作是:將 trunk 上版本 8 至今的修改同步到工作副本 pearbranch,也就是分支 branches/quake。這裡可以發現幾個問題:

上述 subclipse 的不足,應該是因為 subclipse 預設的合併實現是基於 svn 1.4 之前的,那時還沒有 svn:mergeinfo、--reintegrate 和 --record-only 呢。要支援這些 1.5 的新特性,可以安裝 collabnet merge client。

collabnet merge client 是 subclipse 的乙個可選功能,其實就是乙個增強的、支援新特性的合併實現,如上圖所示,它的優點有:

svn 設計思想

主要是看 bubble-up method 這一節,是 revision 的基本原理。

『version control with subversion』

官方手冊,學習 svn 必讀。

svn 分支 合併

儘管svn沒有作強制要求,但是一般svn版本庫目錄建議建立trunk branches和tags三個目錄。在實際操作時,trunk主幹版本要時刻保持乾淨,即隨時可以基於這個版本進行修改並將應用部署上線。branches是分支目錄,存放並行開發的專案 因為分支是主幹的廉價拷貝 相當只是提交了一次主幹版...

SVN 分支使用記錄

主trunk 423 版本 1.建立分支,為新的分支指定訪問url scrapy.test 注釋不要忘了 類似於git定分支名稱 這是424提交 不要定名字為 x 我定為 forth 第四期改版 svn 2 切換至 分支 svn 新建乙個test.txt 提交 版本更新至 425 3 切換回 tru...

SVN拉分支,合併分支

前提是 本地已安裝svn,且在svn中新建好branch和tag目錄 拉分支 上圖中紅框選擇存放的路徑,點選ok就行了。合併 把分支 合併到主幹 方式一 通過eclipse合併主幹分支 1.在主幹專案上,右鍵 team 合併,出現下圖 2.選擇第一種方式,並把左下的選擇框 去掉,出現下方介面。3.點...