2008-08-06 70 views
9

我只是使用像做了一個合併:SVN合併合併多餘的東西

svn merge -r 67212:67213 https://my.svn.repository/trunk . 

我只用了2個文件,其中之一是一個簡單的ChangeLog。它並沒有合併我的ChangeLog更改,而是實際上將我的以及之前不在目標ChangeLog中的一些內容拉回。我注意到當我執行--dry-run時發生了衝突,因此我更新了ChangeLog,並且仍然存在衝突(我在實際合併時發現了衝突)。

我後來顯示差異上我是從合併文件:

svn diff -r 67212:67213 ChangeLog 

而且我看到的只是我做出了改變,所以我知道的額外的改變並沒有在那裏得到的莫名其妙。

這讓我擔心合併實際上並不只是採取了我所改變的,這正是我所期望的。任何人都可以解釋發生了什麼?

UPDATE:爲響應NilObject:

所以,我有2個文件改變,只是更新日誌是相關的,其他的合併罰款。當我去我的正常軀幹結賬,我做上面的diff命令,看看:

Index: ChangeLog 
=================================================================== 
--- ChangeLog (revision 67212) 
+++ ChangeLog (revision 67213) 
@@ -1,3 +1,7 @@ 
+2008-08-06 Mike Stone <myemail> 
+ 
+ * changed_file: Details. 
+ 
2008-08-06 Someone Else <their_email> 

    * theirChanges: Details. 

我以前的修改合併後,更新日誌的差異看起來是這樣的:

Index: ChangeLog 
=================================================================== 
--- ChangeLog (revision 67215) 
+++ ChangeLog (working copy) 
@@ -1,3 +1,14 @@ 
+<<<<<<< .working 
+======= 
+2008-08-06 Mike Stone <myemail> 
+ 
+ * changed_file: Details. 
+ 
+2008-08-06 Someone Else <their_email> 
+ 
+ * theirChanges: Details. 
+ 
+>>>>>>> .merge-right.r67213 
2008-08-05 Someone Else2 <their2_email> 

    * olderChange: Details. 

注意被錯誤地插入的條目不在我正在合併的文件中,但它不是我的更改之一,也不應該被合併。這很容易修復(刪除不屬於我的更改的額外行),但它仍然讓我擔心在SVN中自動合併。

回答

2

這隻發生衝突的情況發生 - 基本上SVN試圖合併在變化,但(粗略地講)看到了變化:

添加

2008-08-06 Mike Stone <myemail> 

* changed_file: Details. 

2008-08-06 Someone Else <their_email> 

而且在進行合併時找不到Someone Else線,因此在進行衝突時將其放在上下文中。如果這是一個非衝突的合併,則只會應用您所期望的更改。

+0

我明白爲什麼這是它的樣子(當進行視覺/手動合併時,SVN必須爲「他們」提供一個「現有」基礎文檔,因此合併標準中的最新版本是它),但它真的很討厭! (至少對於新來的合併遊戲,並驚歎櫻桃和其他合併善的奇蹟) – Tao 2010-07-06 17:20:54

0

這裏沒有足夠的信息可以繼續。

svn merge -r 67212:67213 https://my.svn.repository/trunk . 

將在資源庫中的文件夾/主幹合併在修訂67212修改的文件,並將它們合併到當前工作目錄。如果你這樣做:

svn log -r 67212 

它顯示哪些文件發生了變化?合併只會從第一個參數中提取更改,並將其應用於第二個參數。它不會在第一個參數中上傳回服務器。

如果這不能回答你的問題,你能發佈更多的細節,究竟發生了什麼?