SVN:取消對代碼的修改

來源:互聯網
上載者:User
http://blog.sina.com.cn/s/blog_5432f2730100vmz4.html
取消對代碼的修改分為兩種情況:   第一種情況:改動沒有被提交(commit)。 這種情況下,使用 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       假設最新版本號碼是28。     2、然後找出要復原的確切版本號碼:        svn log [something]      假設根據 svn log日誌查出要復原的版本號碼是25,此處的something可以是檔案、目錄或整個項目      如果想要更詳細的瞭解情況,可以使用 svn diff -r 28:25 [something]    3、復原到版本號碼25:         svn merge -r 28:25 something      為了保險起見,再次確認復原的結果:         svn diff [something]      發現正確無誤,提交。    4、提交復原:       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/
這些列告訴你檔案和目錄最後修改的修訂版本、做出修改的使用者、如果是檔案還會有檔案的
大小,最後是修改日期和項目的名字。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.