2012-05-04 89 views
6

如果我在SVN中做了一個導致衝突的更新,SVN爲我提供了一系列處理每個文件衝突的選項,包括接受任一文件,啓動外部合併程序或推遲衝突解決。SVN。重試交互式衝突解決

如果我選擇推遲解決衝突,我該如何讓SVN重複衝突解決過程。具體如何讓SVN重新提供接受任一文件或啓動外部合併工具的選擇?

[更新]回覆Thomas和Skippy的回覆。

感謝您的答案。因此,看起來SVN沒有重新運行衝突解決過程的命令。我個人認爲這很糟糕。

SVN衝突解決過程的選擇之一是選擇我想保留哪個文件的選項。在SVN中這樣做的好處是SVN本身可以處理複製和刪除適當的文件,這就避免了用戶直接混淆文件系統並減少犯錯的可能性。

SVN衝突解決過程提供的另一種選擇是啓動外部合併編輯器的選項。可以在SVN配置文件中配置啓動的編輯器以及如何設置它。這非常方便,因爲這意味着用戶不必手動將三個文件加載到外部合併編輯器中。

除此之外,它還沒有被編碼是否有任何原因SVN不提供重新啓動衝突解決過程的設施? (也許通過只用一個路徑參數調用svn resolve)。這可能會更好的另一個原因是它可能提供解決一個文件的選擇,或遞歸地在工作副本或工作副本內的子樹上運行。

+0

沒錯,它殺死非交互選項的方便,節省時間完成合並然後解決。 :( – ronnyfm

回答

2

在SVN 1.8.8 如果你感興趣文件中運行「SVN的決心」,SVN將提供交互式衝突解決

2

你根本無法讓它重新提供選擇。你沒有選擇,但下面的人:

  • 合併有衝突的文本「手動」(通過檢查,並在文件中編輯 衝突標記)。

  • 將一個臨時文件複製到工作文件的頂部。

  • 運行svn恢復丟棄所有本地更改。

一旦你解決衝突,你需要讓顛覆 知道運行SVN解決。這刪除了三個臨時文件,並且 Subversion不再認爲該文件處於 衝突狀態。[6]

(從http://chestofbooks.com/computers/revision-control/subversion-svn/Postponing-Conflict-Resolution-Tour-Cycle-Resolve-Pending.html

+0

有第四種選擇 - 你可以用'.mine','.rOLDREV'和'.rNEWREV'文件以及基本文件名(版本化文件)手動啓動合併程序作爲合併輸出。 svn在啓動外部合併程序時會執行此操作。 – george

0

SVN不會再問你一次。但是,從命令行運行svn stat時,應該會看到衝突文件列表。這些將被標記爲「C」,就像如果存在修改的文件時它帶有「M」或者如果沒有添加的文件帶有「?」。

現在您必須在每個文件上手動運行svn resolve