從svn上回滾版本和解決衝突
提交SVN後想回滾到舊版本。
選擇TortoiseSVN→Repo-browser,想從SVN上直接回滾到舊版本,結果發現根本沒有這個選項,無法實現。
右鍵WC(working copy)→TortoiseSVN→Update to revision,可以把WC回滾到某一版本,但是這個舊版本的檔案卻不能更新到SVN,SVN上還是最新的版本。若是刪掉SVN上的最新版本的檔案,再把本地的舊版本檔案新增入SVN,這也不是不可以,只是這樣,就丟失了這個檔案的更新記錄。
========================
最終被我找出一個有效的辦法:
如果想恢復某個版本或者版本範圍的變更,最簡單的方法是使用版本日誌對話方塊。這種方法也可以用來撤銷最近的若干次變更,把以前的某個版本變成最新版。
-
選中想要恢復變更的檔案或者資料夾。如果想要恢復所有的變更,需要選中最頂層的資料夾。
-
Select TortoiseSVN → Show Log to display a list of revisions. You may need to use Show All or Next 100 to show the revision(s) you are interested in.
-
Select the revision you wish to revert. If you want to undo a range of revisions, select the first one and hold theShift
-
如果想要把以前的某個版本變成最新版本,右鍵點選選中的版本(範圍),然後選擇右鍵選單 → 恢復到此版本。就能夠撤銷被選中版本後面所有的變更。
工作副本已經恢復到了變更以前的狀態。檢查恢復後的結果,然後提交變更。
解決衝突(merge,update都有可能出現衝突,衝突的檔案會出現黃色感嘆號,並生成幾個臨時檔案):
1.以merge為例,merge出現衝突時,會彈出框
2.現在resolve all later,然後再log窗裡統一解決衝突:
3.edit conflicts,彈出對比工具
圖中左邊上角代表merge的來源,右上角代表merge目標檔案,下面是目標檔案的編輯區域(上面不可以編輯),白色區域為沒有變化的區域,黃色為上個版本的內容,紅色為這個版本的內容(下面編輯區的紅色?代表最終內容還沒有確認),我們在下面編輯區的紅色區域寫上合併後的內容,儲存,然後mark as resolved就ok了