1. 程式人生 > >eclipse svn版本合併衝突解決

eclipse svn版本合併衝突解決

衝突情況的解決辦法

衝突情況1:伺服器程式碼和自己程式碼改動的地方相同

這種情況比較複雜,一般只能將自己的程式碼儲存一份到本地,然後直接將伺服器程式碼更新下來,然後在新的程式碼上修改自己的邏輯。就比如說你和上一個上傳程式碼的人修改了同一個地方但是在他上傳的時候你沒有更新,導致你提交的時候發現你和他改動的地方為一樣。

 ok不廢話截圖打個比方:


上面的例子應該能看懂左側程式碼為自己的程式碼觀察發現被自己註釋掉了所以可以對比程式碼是否是最新,如果原生代碼不是最新可以將右側程式碼複製到右側儲存,最後右擊衝突檔案點選標記為合併即可。

注:以上只是打個比方還有其他衝突情況沒有列舉可以根據程式碼邏輯自行合併。

衝突情況
2:
伺服器程式碼和自己程式碼改動的地方不同

這種情況比較常見,就是你跟別的開發者都在更改同一個檔案,但是由於開發任務是分開的,所以更改的地方是不同的,解決辦法如下。

1、雙擊衝突檔案進入比較檢視

2、找到伺服器上新增的但本地沒有的程式碼塊,選中此程式碼塊,點選右上角的按鈕(如下圖箭頭指向的按鈕)將伺服器程式碼複製到本地(其他地方也同此操作),如果點選按鈕沒用,則關閉比較檢視重新開啟

複製成功後本地左側程式碼為最新程式碼


儲存後發現右側新增程式碼消失。

3.如果顯示有衝突(你沒有改動過該程式碼哦將所有伺服器上新增的程式碼複製到本地檔案後,右鍵衝突檔案選擇標記為合併即可,此時該檔案就會消失在Synchronize

檢視下,並且該檔案的程式碼已經成功將原生代碼和遠端程式碼合併到一起.

衝突情況3: svn提交上次cleanup 中斷後導致的死迴圈

錯誤如下:

 

解決方法:清空svn的佇列

2.找到你專案的.svn檔案,檢視是否存在wc.db

3.將sqlite3.exe放到.svn的同級目錄

4.啟動cmd執行sqlite3 .svn/wc.db "select * from work_queue"

 

5.看到很多記錄,下一步執行delete from work_queue

 

6.ok了,現在在到專案裡面,執行cleanup,完全沒問題了,圖示狀態也已經恢復了。