我已經檢出了樹幹並已完成從樹枝到樹幹的合併。現在,分支中所做的所有更改都存在於我的主幹工作副本中。如果我在這個工作副本上進行提交,是否有任何方法可以稍後確定它是合併,而不是像正常的結帳 - 修改 - 簽入。我可以在日誌中指定合併詳細信息,但是如果SVN有一些方法可以識別和跟蹤它,我很感興趣。如何捕獲svn合併信息
我在其他版本控制工具(如clearcase)中看到過,合併箭頭將出現在版本樹中,用於每次合併。有沒有像SVN那樣的東西(一些合併符號或合併箭頭)?
我已經檢出了樹幹並已完成從樹枝到樹幹的合併。現在,分支中所做的所有更改都存在於我的主幹工作副本中。如果我在這個工作副本上進行提交,是否有任何方法可以稍後確定它是合併,而不是像正常的結帳 - 修改 - 簽入。我可以在日誌中指定合併詳細信息,但是如果SVN有一些方法可以識別和跟蹤它,我很感興趣。如何捕獲svn合併信息
我在其他版本控制工具(如clearcase)中看到過,合併箭頭將出現在版本樹中,用於每次合併。有沒有像SVN那樣的東西(一些合併符號或合併箭頭)?
您應該看到一條或多條路徑上的svn:mergeinfo
屬性發生了更改。這用於track what was merged。然後,您可以使用svn mergeinfo
命令查看哪些路徑已合併或有資格從源分支合併到另一個分支。 svn mergeinfo
也可以顯示一個粗略的合併圖,如果你沒有在1.8中通過它的參數--show-revs
。由於Dipu H已在他的評論中提及,您還可以看到-g
選項合併修訂爲svn log
。
根據您的標籤,您似乎正在使用TortoiseSVN。據我所知,TortoiseSVN沒有辦法用合併信息可視化其版本圖形功能。 Smart SVN是has such a feature的商業Subversion客戶端(完全披露我爲生產Smart SVN的公司工作)。 Subclipse has such a feature以及如果您使用Eclipse。有一個插件JetBrains IDEs as well。
所以我敢肯定,如果你搜索你會發現一些適合你的東西。但我對你的環境不夠了解,無法指出你的方向。
替代本的合併信息的方法
讓我們檢查等(測試)庫
與分行及一些交叉節點合併過程
日誌分支(懶惰的日誌,沒有 - 停止 - 副本)
reading>svn log -g -q -v
------------------------------------------------------------------------
r7 | Badger | 2014-01-30 13:51:41 +0600 (Чт, 30 янв 2014)
Changed paths:
M /branches/reading/1.txt
------------------------------------------------------------------------
r6 | Badger | 2014-01-30 13:50:34 +0600 (Чт, 30 янв 2014)
Changed paths:
M /branches/reading
M /branches/reading/1.txt
------------------------------------------------------------------------
r5 | Badger | 2014-01-30 13:43:45 +0600 (Чт, 30 янв 2014)
Changed paths:
M /trunk/1.txt
Merged via: r6
------------------------------------------------------------------------
r4 | Badger | 2014-01-30 13:42:59 +0600 (Чт, 30 янв 2014)
Changed paths:
M /branches/reading/1.txt
------------------------------------------------------------------------
r3 | Badger | 2014-01-30 13:39:37 +0600 (Чт, 30 янв 2014)
Changed paths:
A /branches/reading (from /trunk:2)
------------------------------------------------------------------------
r2 | Badger | 2014-01-30 13:36:46 +0600 (Чт, 30 янв 2014)
Changed paths:
A /trunk/1.txt
------------------------------------------------------------------------
r1 | Badger | 2014-01-30 13:35:19 +0600 (Чт, 30 янв 2014)
Changed paths:
A /branches
A /tags
A /trunk
------------------------------------------------------------------------
即使沒有登錄消息中R6 Merged via: r6
從R5中明確指出:R6是mergeset,其中幹線的HEAD(R5)在日誌合併到分支
日誌(相關部分)用於中繼線
WC>svn log -g -q -v
------------------------------------------------------------------------
r8 | Badger | 2014-01-30 13:56:09 +0600 (Чт, 30 янв 2014)
Changed paths:
M /trunk
M /trunk/1.txt
------------------------------------------------------------------------
r7 | Badger | 2014-01-30 13:51:41 +0600 (Чт, 30 янв 2014)
Changed paths:
M /branches/reading/1.txt
Merged via: r8
------------------------------------------------------------------------
r6 | Badger | 2014-01-30 13:50:34 +0600 (Чт, 30 янв 2014)
Changed paths:
M /branches/reading
M /branches/reading/1.txt
Merged via: r8
------------------------------------------------------------------------
r4 | Badger | 2014-01-30 13:42:59 +0600 (Чт, 30 янв 2014)
Changed paths:
M /branches/reading/1.txt
Merged via: r8
------------------------------------------------------------------------
r3 | Badger | 2014-01-30 13:39:37 +0600 (Чт, 30 янв 2014)
Changed paths:
A /branches/reading (from /trunk:2)
Merged via: r8
------------------------------------------------------------------------
Merged via: r8
R3的記錄:R7表示未來的MergePoint(在這個時候 - 從分支到主幹)
簡而言之:合併信息顯示被合併了什麼,登錄-g - 什麼時候
'svn log -g' in/trunk? –
我可以在日誌中指定合併細節,但是如果SVN有一些方法可以識別和跟蹤除日誌以外的合併,我很感興趣。合併後,即使沒有提交消息,我也可以簽入主幹。在這種情況下,我將如何跟蹤合併。 –
'svn log -g'顯示合併條目的條目以及合併它的修訂條目。所以說你把你的分支中的r123,r124和r126合併到r129中的trunk中。如果你運行'svn log -c 129 -g',你會得到r129的日誌,然後是r123,r124和r126。合併後的修訂版本將包含「合併通過:r129」或「反向合併通過:r129」之類的行。所以他不只是把你指向你寫的日誌。 –