2009-10-08 217 views
32

我和我的朋友使用flex builder(基於eclipse)和subclipse的項目。Subclipse衝突解決

在提交之前,我總是更新,但有時候由於衝突我無法提交。然後我使用Team->與存儲庫同步,並在右側顯示最新版本,並在左側顯示我當前的工作副本。它有一個按鈕,可以從右向左複製所有非衝突(從最新的存儲庫到我的工作副本)。但是仍然有矛盾的線條。

有時我只是想從左到右複製,但沒有按鈕(我的意思是用我的線覆蓋存儲庫文件行)。從右向左複製非衝突的部分後,我只想提交左側(我想覆蓋並提交我的最終文件到存儲庫)。由於這些衝突問題,我無法承諾。然後我的朋友可以使用Replace With-> Latest from Repository命令來獲取最新的過分版本。

Subclipse文檔很薄弱我在Internet上找不到任何好的指南。你能不能像我一樣解釋subclipse的衝突解決方案?顯示這些步驟的視頻或者快速修復它的外星技術將會很好。 eclipse的源代碼控制有沒有更好的(更簡單的)解決方案?

(我使用的是subclipse 1.4)

+5

有時日食生態系統讓我發瘋。 – smartnut007 2011-08-09 00:47:11

+1

@Gok:我認爲這裏有個好消息:subclipse最後會讓「我的/他們的/ ...解決」的工作。壞消息是,只有在點擊「標記已解決」之後纔會出現對話框(我已經在!!!!之前手動修復了所有衝突) – 2012-06-11 08:45:41

回答

53

是的,你是對的。沒有按鈕。在差異視圖(並排視圖)中,紅色的項目有衝突。他們不能自動合併。您必須查看處於衝突狀態的項目,並通過複製/編輯衝突的代碼塊來手動解決它。

在提交或更新存儲庫(與存儲庫同步)後,您將在控制檯視圖中看到有些項目存在衝突。當你在包中的文件來看看你旁邊你原來的文件中看到3個文件:

myfile.txt (original file) 
myfile.txt.mine 
myfile.txt.r3293 
myfile.txt.r3501 

右鍵單擊您的原始文件,然後選擇Team - >編輯衝突。在提供的差異視圖中,編輯左側的文件以匹配所需的最終結果。 (也就是說,您可能希望保留一些更改並複製SVN修訂版中的新更新,放棄所有更改並僅保留更改等)。完成後,保存該文件。再次右鍵單擊原始文件,然後選擇Team - > Mark Resovled。

您將看到添加3個文件消失。你現在可以「安全」地完成你的工作。

有沒有簡單的方法來做到這一點,因爲SVN無法決定什麼是這種衝突出現時的最佳選擇。

+5

SVN在這種情況下不需要決定,OP想要明確地要求覆蓋所有用他/她自己的遠程更新。請參閱我的完整版:http://svnbook.spears.at/nightly/en/svn.ref.svn.c.resolve.html subclipse確實應該有這個。 – 2012-05-29 15:57:47

+0

@紅杉,我爲這個新手問題表示歉意,但我對這篇文章感到困惑。看起來這個特性已經被提交併且被SVN的每晚構建檢查了嗎?那麼這是否意味着即將發佈的版本(1.7.7?1.8?)它將可用?擁有解決方案/工作拷貝將會非常棒!謝謝! – AnneTheAgile 2012-07-18 11:59:03

+0

請注意,除了解決衝突之外,您還需要合併從右至左的任何非衝突更改。並且,如果您已經像上面的答案建議那樣手動編輯,點擊「Team-> Mark Resolved」後,選擇「文件解決衝突」。 – Madbreaks 2013-04-26 18:18:59

11

我知道這個主題很舊,但如果有人正在尋找更新的答案,我的經驗可以提供幫助。
我使用的是subclipse 1.8。右鍵單擊原始文件並選擇「標記已解決...」,您將擁有多個選項,其中包括將本地文件或基本文件作爲正確版本。您可以使用這些選項節省時間。

4

我找不到「Mark Resolved」,所以我在手動刪除生成的文件後點擊了「Mark as Merged」標記。

+0

這似乎是做同樣的事情。 – otajor 2016-06-14 13:27:15

0

請執行下列操作步驟:

  • 複製您最新的工作更新到安全的地方。

  • 選擇有衝突的文件..點擊>選擇替換爲>>從存儲庫中選擇最新。

  • 然後返回到您保存的工作副本,並用您的手動替換當前文件內容(在上述步驟中已被覆蓋)。

  • 然後從團隊選擇提交... 這種方式衝突應該解決,你保存你最新的更新SVN倉庫。