天天看點

svn 代碼復原

svn 代碼如何復原。

一、改動代碼沒有送出到倉庫

這種情況下,使用svn revert就能取消之前的修改。

svn revert用法如下:

# svn revert [-R] something

其中something可以是(目錄或檔案的)相對路徑也可以是絕對路徑。

當something為單個檔案時,直接svn revert something就行了;當something為目錄時,需要加上參數-R(Recursive,遞歸),否則隻會将something這個目錄的改動。

在這種情況下也可以使用svn update指令來取消對之前的修改,但不建議使用。因為svn update會去連接配接倉庫伺服器,耗費時間。

注意:svn revert本身有固有的危險,因為它的目的是放棄未送出的修改。一旦你選擇了恢複,Subversion沒有方法找回未送出的修改。

二、改動已經被送出(commit)

這種情況下,用svn merge指令來進行復原。 

   復原的操作過程如下: 

   1、保證我們拿到的是最新代碼: 

     svn update 

   2、然後找出要復原的确切版本号: 

     svn log [需要復原的檔案名]

     可以使用svn diff -r 2932:2922 [需要復原的檔案名],檢視兩個版本(2932和2922)之間的差異,加号代表2922版本内容,減号代表2932版本内容。和容易看出版本間差異。

svn 代碼復原

   3、将2932版本復原到版本号2922:

       svn merge -r 2932:2922 復原檔案名

svn 代碼復原

     為了保險起見,再次确認復原的結果:

       svn diff [復原檔案名]      減号:復原檔案發生改變的行,加号:復原後的内容

svn 代碼復原

     發現正确無誤,送出。

   4、送出復原:

     svn commit -m "復原說明..." 

svn 代碼復原

     送出後版本變成了2933。

  三、總結

   1. svn update,svn log,找到最新版本(latest revision)

   2. 找到自己想要復原的版本号(rollbak revision)

   3. 用svn merge來復原: svn merge -r : something

By---    Gonjan

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,

svn

繼續閱讀