Subversion 其中一個功能就是回復。

如果改的東西還沒有送交 (commit) 的話,只要下


svn revert path/filename.txt

就可以回復到原本的狀態。

但是如果已經 commit 出去的,就不能用 svn revert 來處理。

之前用的是很笨的方法:先 svn update 到正確的 revision N ,然後把檔案複製到暫存目錄,再 svn update 到錯誤的 revision N+1 ,再把剛複製的檔案覆蓋回去…XD

正確的解法是下


svn merge -r N+1:N path/filename.txt

把從 revision N 到 N+1 做的事逆向 merge 回來,然後先 svn diff 看一下,沒問題就再 svn ci 上去。

有問題的話,就再下 svn revert 就可以了。

指令本身不難,難在想破頭也不會想到是下 merge 啊…XD


Tags: Subversion svn merge revert 回復 回退 版本控制


全站熱搜

repeat :D 發表在 痞客邦 留言(1) 人氣()