2012-08-27 96 views
3

我使用SVN版本1.6和我有很多的使用命令行合併的問題抓住了太多的文件。我試圖將一個修訂版本(我們稱之爲修訂版本5)從一個分支合併到另一個分支。SVN合併與修訂號

我使用命令行合併。我在我想合併到的分支中CD'ed,並嘗試以下命令:

  • svn merge -r4:5 FROMBRANCH。
  • svn merge -r4:5 FROMBRANCH
  • svn merge -c5 FROMBRANCH。
  • SVN合併-C5 FROMBRANCH

沒有這些命令似乎正常工作。每次我發出一個合併命令,然後做一個「svn狀態」,我得到一個非常長的文件列表。該列表包括來自修訂版#5的文件,以及我不想合併的許多其他文件。

(注:「SVN復歸-R」我已經使得沒有任何文件已被使用「的svn status」本地更改我也已經恢復了更改後每個合併使用嘗試)

有什麼建議嗎?謝謝!

+0

您是否使用svn log -v -c 5 _repositorypath_驗證了您獲得的「額外」文件不是修訂版5的一部分? – james

+0

是的。當我運行svn log時,我只能看到該版本中的文件。 –

回答

2

「svn status」顯示的長文件列表可能是由於「mergeinfo」屬性更新引起的。

因爲這樣做合併到<目標分支>時解釋here,其中有合併信息屬性集<目標分支>的所有子樹現有的合併信息顛覆更新。

這意外的行爲已經顛覆了不客氣1.7

(從顛覆1.7的changelog)

梅傑斯不再記錄合併信息的子樹 (描述合併)(也有自己明確的mergeinfo),如果子樹是 不受合併影響。這應該會大大減少 虛假svn:合併信息屬性更改數量爲 具有顯式合併信息的子樹數量的用戶。

如果正在合併的更改包含svn:mergeinfo修改,這些 仍將應用,就像其他任何屬性修改一樣。所以,如果 要合併的變化是自身的另一個結果撤併 用1.5或1.6的客戶端進行的,過度的子樹合併信息 變化仍然是可能的。新的 分支機構將爲1.7個客戶創建並維護最佳結果。

+0

這是不是純粹與mergeinfo屬性更改有關?就像@Joni一樣,在svn合併到我的分支之後,我得到一長串'M'修改過的文件(它們沒有被修改,因爲它們的內容與基本拷貝一樣,甚至包括行尾),這絕對沒有改變我的主幹上的原始修訂版本是我合併的來源。 –