2011-08-06 65 views
20

當我做了svn update和SVN問我一些差異時,我告訴它推遲它們。SVN更新推遲 - >如何解決?

現在我想解決它們,但svn update只是告訴我「最新」,儘管svn diff顯示了我的差異。

我該如何讓svn update再問我一次衝突?

+0

'svn status'呢? 'svn update'不應該輸出任何東西,只要沒有添加到中央存儲庫 – zerkms

+0

'svn status'顯示什麼?有關更改列表的信息? –

+0

@zerkms:'svn status'在前面顯示了很多帶'?'的文件,還有一些'M'和'C'文件(不知道它們是什麼意思)。 – Mehrdad

回答

16

svn update不會再次詢問衝突,因爲它已經處理了它們。

至於svn status意思,?文件不受SVN管理的,M那些已經被修改,並且C那些是你推遲了衝突的。如果您打開C文件之一併查看它,您將在代碼中看到標記,顯示衝突的位置。您需要編輯其中的每一個,修復衝突並刪除標記。然後你需要運行svn resolve告訴SVN事情是好的。在運行之前,請務必使用--help選項和Google來了解svn resolve的工作方式。

如果您沒有做到這一切,svn commit將不再起作用。

svn status真的很重要,因爲svn diff只顯示在svn update之後本地發生的事情。但是,在查詢存儲庫後,svn status -u給出了一個概述。最重要的是,它清楚地標識出衝突的文件(第1列中的C),您必須在編輯器中打開並手動檢查。

+27

你的回答很有幫助,但你的語氣很粗魯。我有一個類似於原始海報的問題(在'svn merge'後推遲了一些更改),這個SO頁面是Google上的第一個結果! – knite

+1

更正:如果您指定'-u',svn狀態將只進入存儲庫,否則它只會查看.svn目錄中的文件 – ahawtho

6

當您運行svn commit時,您將看到一個衝突文件列表。 然後,您可以通過發出如命令解決衝突:

svn resolve --accept=theirs-full '/path/to/the/file' 

svn resolve --help鍵入可用的衝突解決模式的列表。