SVN代碼回滾命令 即取消對代碼的修改

http://blog.sina.com.cn/s/blog_5432f2730100vmz4.htmlhtml

取消對代碼的修改分爲兩種狀況:緩存

 

第一種狀況:改動沒有被提交(commit)。服務器

這種狀況下,使用svn revert就能取消以前的修改。dom

svn revert用法以下:svn

svn revert [-R] somethingspa

其中something能夠是(目錄或文件的)相對路徑也能夠是絕對路徑。.net

當something爲單個文件時,直接svn revert something就好了;當something爲目錄時,須要加上參數-R(Recursive,遞歸),不然只會將something這個目錄的改動。日誌

在這種狀況下也可使用svn update命令來取消對以前的修改,但不建議使用。由於svn update會去鏈接倉庫服務器,耗費時間。htm

注意:svn revert自己有固有的危險,由於它的目的是放棄未提交的修改。一旦你選擇了恢復,Subversion沒有方法找回未提交的修改。blog

 

第二種狀況:改動已經被提交(commit)。

這種狀況下,用svn merge命令來進行回滾。 

   回滾的操做過程以下: 

   一、保證咱們拿到的是最新代碼: 

     svn update 

     假設最新版本號是28。 

   二、而後找出要回滾的確切版本號: 

     svn log [something]

     假設根據svn log日誌查出要回滾的版本號是25,此處的something能夠是文件、目錄或整個項目

     若是想要更詳細的瞭解狀況,可使用svn diff -r 28:25 [something]

   三、回滾到版本號25:

       svn merge -r 28:25 something

     爲了保險起見,再次確認回滾的結果:

       svn diff [something]

     發現正確無誤,提交。

   四、提交回滾:

     svn commit -m "Revert revision from r28 to r25,because of ..." 

     提交後版本變成了29。

   將以上操做總結爲三條以下:

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

   2. 找到本身想要回滾的版本號(rollbak revision)

   3. 用svn merge來回滾: svn merge -r : something

 

http://lee2013.iteye.com/blog/1074457

SVN 查看歷史信息 經過svn命令能夠根據時間或修訂號去除過去的版本,或者某一版本所作的具體的修改。如下四個命令能夠用來查看svn 的歷史:
svn log 用來展現svn 的版本做者、日期、路徑等等
svn diff 用來顯示特定修改的行級詳細信息
svn cat 取得在特定版本的某文件顯示在當前屏幕
svn list 顯示一個目錄或某一版本存在的文件

(一)svn log能夠顯示全部的信息,若是隻但願查看特定的某兩個版本之間的信息,可使用:
svn log -r r1:r2
若是隻想查看某一個文件的版本修改信息,可使用
svn log A
若是但願獲得目錄的信息要加-v
若是但願顯示限定N條記錄的目錄信息,使用
svn log --limit N -v
(二)svn diff用來檢查歷史修改的詳情
。檢查本地修改
。比較工做拷貝與版本庫
。比較版本庫與版本庫
(1)若是用svn diff,不帶任何參數,它將會比較你的工做文件與緩存在.svn的「原始」拷貝
svn diff
Index: rules.txt
===================================================================
--- rules.txt (revision 3)
+++ rules.txt (working copy)
@@ -1,4 +1,5 @@
Be kind to others
Freedom = Responsibility
Everything in moderation
-Chew with your mouth open
(2)比較工做拷貝和版本庫
svn diff -r 3 rule.txt,就是比較你的工做拷貝和版本庫中版本號爲3的文件rule.txt
(3)比較版本庫與版本庫
經過-r(revision)傳遞兩個經過冒號分開的版本號,這兩個版本會進行比較
svn diff -r 2:3 rule.txt 用來比較svn工做版本中版本號2和3的這個文件的變化

(三)svn cat
若是隻是但願檢查一個過去版本,不但願查看他們的區別,可以使用svn cat
svn cat -r 版本號 rule,txt
這個命令會顯示在該版本號下的該文件內容

(四)svn list
svn list能夠在不下載文件到本地目錄的狀況下來察看目錄中的文件:
svn list http://svn.collab.net/repos/svn
README
branches/
clients/
tags/
基本使用
34
trunk/
若是你但願察看詳細信息,你可使用--verbose(-v) 參數:
svn list -v http://svn.collab.net/repos/svn
20620 harry 1084 Jul 13 2006 README
23339 harry Feb 04 01:40 branches/
21282 sally Aug 27 09:41 developer-resources/
23198 harry Jan 23 17:17 tags/
23351 sally Feb 05 13:26 trunk/
這些列告訴你文件和目錄最後修改的修訂版本、作出修改的用戶、若是是文件還會有文件的
大小,最後是修改日期和項目的名字。

 

 

 

=====================

 

解決svn的working copy locked而且cleanup恢復不能的狀況

 

產生這種狀況大可能是由於上次svn命令執行失敗且被鎖定了。

若是cleanup沒有效果的話只好手動刪除鎖定文件。

cd 到svn項目目錄下,而後執行以下命令

del lock /q/s

就把鎖刪掉了。

相關文章
相關標籤/搜索