2008-09-30 54 views
40

這一直在困擾着我很長一段時間 - 我如何正確解決在目錄上設置的SVN屬性內的合併衝突?比如說,有兩個開發人員在一個項目中工作,在某個目錄中設置了svn:ignore。如果兩個開發人員都對此屬性進行更改,當第二個更新時,他們將看到合併衝突。如何解決與SVN屬性的合併衝突?

與文件合併衝突不同,在名爲「dir_conflicts.prej」的目錄中會生成單個文件,第二個開發人員必須閱讀並手動更正該文件。通常,我最終要做的是將所有更改恢復到本地副本,然後使用dir_conflicts.prej中的信息手動重新設置這些屬性。但是,在處理svn:externals屬性中的大量URL時,這很麻煩,因爲我們許多項目都使用它。

有一個更好的方式來做到這一點 - 有人知道如何?

回答

11

只是經過一些額外的研究快速更新 - 這是可以容易地合併SVN特性。我最初描述的方法(恢復,從.prej文件合併數據,propset,重新提交)似乎是處理這類問題的最佳方法。

+0

不幸的是,我不得不+1這個答案。 我使用svn:externals屬性和anit模式來處理它。不是正確的地方去詳細,但我只是認爲我會在這裏抱怨。 – FlipMcF 2013-03-07 20:25:55

1

你的意思是提交/更新或分支合併合併衝突嗎?

SVN Book是關於SVN很明顯:尤其是忽略屬性:

Subversion不認爲每一個 文件或子目錄的工作副本 目錄是版本 控制。資源必須明確地使用svn add或svn import 命令置於Subversion的管理 下 。

...

要強制庫的每個用戶添加模式對這些資源到他們的運行時配置區域將不只是一個負擔,但與發生衝突的可能性用戶檢出的其他工作副本的配置需求。

3

在Eclipse + Subclipse的(藍色)的同時,這是可能的使用功能

Team->編輯屬性衝突

(只是試圖相互矛盾的svn:忽略屬性)

此功能打開一個對話框,顯示兩個屬性版本(本地和存儲庫),您可以在其中複製&粘貼,然後使用Team-> Mark Resolved解決衝突。

0

要清楚的是,SVN似乎使用dir_conflicts.prej文件來派生出目錄存在衝突的事實。如果您打算手動解決衝突,則可以簡單地刪除dir_conflicts。prej文件,然後根據需要手動設置svn屬性。 (當然,在刪除它之前,請確保從.prej文件中獲得所需內容!)

0

我有類似的衝突。我在文本編輯器中打開dir_conflicts.prej,發現svn ignore list已被更改。幸運的是,列表中的內容是相同的,只是順序改變了。因此,在TortoiseSVN 1.9.3中,我只需右鍵單擊文件夾,然後TortoiseSVN -> Resolve...。衝突得到解決。

3

我有同樣的問題。

我試圖用Team->編輯屬性衝突,但我得到了STS吊起來,沒有迴應,因此我被迫關閉。

這是可能的TortoiseSVN的

解決我這是怎麼解決

  • 選擇其中dir_conflicts.prej位於
  • 右鍵單擊TortoiseSVN的文件夾 - >解決...
  • 它就會告訴你解決財產衝突
  • 不要決心和保存