當檔案被別人修改並提交到svn伺服器後,如果自己本地的檔案沒有被更新為最新的版本,而且已經做了修改,這時候提交將會被成功,系統會提示你的版本已經過期,並要求你先進行更新,再提交,如下圖所示:
依照提示進行更新,如果從伺服器更新下來的最新版本和本地的版本都對同乙個地方做了修改,則會提示衝突,提示頁面如下:
你在提交失敗後進行更新操作前的檔案,此時此檔案裡儲存的就是你修改後的內容。
filename.roldrev
這是你做更新操作以前的base版本檔案,就是你在上次更新之後未作更改的版本,因而此版本裡只包含你上次更新後的內容,本次將要提交的內容不包括在內。
filename.rnewrev
這是你的svn客戶端在更新操作發生的時候從伺服器收到的版本(也就是和你目前衝突的那個檔案),這個檔案對應版本庫的head版本。
其中oldrev是你.svn目錄中的修改版本號,newrev是版本庫中head的版本號。
此時,需要進行版本衝突處理:
滑鼠右鍵點選衝突檔案,選擇tortoisesvn --- edit conflicts 進行處理:
版本衝突處理介面如下圖所示:
畫面上方左側為從伺服器更新下來的版本(theirs), 上方右側為本地版本(mine), 下方為處理合併之後的預覽版本。
點選工具欄上紅色向下的箭頭
系統會自動跳轉到下一部分衝突的區塊, 並選中衝突的區塊。 此時點選工具欄上藍色向左或者向右箭頭可以選擇使用更新版本還是本地版本
按鈕具體功能,滑鼠移上之後會有提示,theirs 表示更新下來的版本,mine 表示本地版本。選擇版本之後,可以在畫面下方檢視預覽版本。預覽版本的衝突區塊在選擇版本之前是以?問號顯示,版本選擇後則以選擇版本對應的區塊替代顯示,如下圖所示(此例版本選擇 mine 版本):
依次完成所有衝突的區塊,選擇儲存檔案:
再點選工具欄上如下圖所示按鈕:
將該檔案標記為版本衝突已經解決的檔案。此時,再在資料夾目錄下觀察該檔案,就沒有衝突的標記了,而只有自己所做修改的標記,此時該檔案就可以被提交了,如下圖所示:
原文和參考文
1.
tortoisesvn版本衝突處理
2.tortoisesvn 操作手冊
3.多人開發時有可能遇到衝突
TortoiseSVN 衝突解決詳細步驟
衝突還是很好解決的,但我沒有試過在ide裡邊整合怎樣。記得vss在visual studio裡邊解決衝突就非常完美,衝突自動報告,自動彈出衝突解決視窗,讓你處理該怎麼合併兩份版本。合併後自動簽入commit。小烏龜在這裡就欠缺點了 1.發現衝突。大家不要驚慌 2.按照提示update。警察叔叔叫你u...
TortoiseSVN衝突分類
a和b操作同乙個檔案,a修改完後提交了,b修改完想點提交,結果b發現提交不了,這就發生了檔案衝突。根據衝突引發的具體原因不同,可以將衝突分為 異行修改衝突 同行修改衝突。1 異行修改衝突 多個客戶端對同一版本檔案進行修改,修改的不是同一行資料內容,這就叫異行修改衝突。2 同行修改衝突 多個客戶端對同...
解決 SVN解決衝突
intelij idea 使用svn,提交 前先更新 此時如果有衝突,就會提示你解決衝突。產生衝突的情況 a 和 b 兩名程式設計師,分別更新了同一版本 version 1 的 同時修改了乙個檔案。a提交 後,伺服器中的 是 version a 即 a 修改後的 b隨後提交 由於伺服器中的 已經不是...