posts - 262,  comments - 221,  trackbacks - 0
          【16】回滾到指定的版本
          通過前面對svn revert命令的學習,我們已經知道了如何回滾尚未提交的本地變更。但是如果變更已經提交,成為版本庫的某個版本,這時還能夠再回滾嗎?前面的實驗已經知道svn update命令不會對已經發生修改的本地資源進行update操作,以免覆蓋本地尚未提交的修改。那么對于當前沒有發生修改的本地資源,通過svn update能否回滾到指定的歷史版本呢?

          通常要回滾到某個指定的歷史版本,我們需要知道兩件事:
           A.要回滾到的那個版本的版本號
           B.要回滾到的那個版本當時所做的修改

          現在假設我們對ECoupon下的read-from-local.txt文件進行了修改,增加了“modify by user qlinpen”這句話,并提交到版本庫。之后我們想回滾到某個指定的歷史版本。實驗如下:

          C:\>svn commit E:\Temp\ECoupon -"update read-from-local.txt file"
          Sending        E:\Temp\ECoupon\read
          -from-wc.txt
          Transmitting file data .
          Committed revision 
          19.

          C:\
          >svn update E:\Temp\ECoupon
          At revision 
          19.

          好,現在在開始回滾之前,我需要知道在我提交變更之后,是否有其他人對該文件進行了修改,以及修改的時間。這時我們可以通過svn log命令方便地查看版本的變更歷史。該命令的用法:

          svn log [PATH]、svn log URL[PATH...]、svnl og URL[@REV] [PATH...]

          默認情況下如果svn log不加任何參數,會顯示當前目錄下所有資源的變更歷史,我們可以通過PATH,URL來限定顯示范圍,還可以通過URL PATH來顯示某個URL下的某個(些)文件的變更歷史,甚至還可以指定版本號,版本范圍。

          下面我們逐個來看svn log的使用:

          ●svn log PATH
          C:\>svn log E:\Temp\ECoupon\read-from-wc.txt
          ------------------------------------------------------------------------
          r19 | qlinpen | 
          2009-12-09 16:08:59 +0800 (星期三, 09 十二月 2009) | 1 line

          update read
          -from-local.txt file
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------

          ●svn log URL [PATH...]
          C:\>svn log http://localhost:8000/svn/Workspace/Ericsson/ECoupon/read-from-wc.txt
          ------------------------------------------------------------------------
          r19 | qlinpen | 
          2009-12-09 16:08:59 +0800 (星期三, 09 十二月 2009) | 1 line

          update read
          -from-local.txt file
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------

          C:
          \>svn log http://localhost:8000/svn/Workspace/Ericsson ECoupon/read-from-wc.txt
          ------------------------------------------------------------------------
          r19 | qlinpen | 
          2009-12-09 16:08:59 +0800 (星期三, 09 十二月 2009) | 1 line

          update read
          -from-local.txt file
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------

          ●svn log URL[@REV] [PATH]
          C:\>svn log -18:HEAD E:\Temp\ECoupon\read-from-wc.txt
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------
          r19 | qlinpen | 
          2009-12-09 16:08:59 +0800 (星期三, 09 十二月 2009) | 1 line

          update read
          -from-local.txt file
          ------------------------------------------------------------------------

          C:
          \>svn log -18:19 http://localhost:8000/svn/Workspace/Ericsson/ECoupon/read-from-wc.txt
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------
          r19 | qlinpen | 
          2009-12-09 16:08:59 +0800 (星期三, 09 十二月 2009) | 1 line

          update read
          -from-local.txt file
          ------------------------------------------------------------------------

          C:
          \>svn log E:\Temp\ECoupon\read-from-wc.txt@18
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------

          C:
          \>svn log http://localhost:8000/svn/Workspace/Ericsson/ECoupon/read-from-wc.txt@18
          ------------------------------------------------------------------------
          r18 | qlinpen | 
          2009-12-08 23:11:45 +0800 (星期二, 08 十二月 2009) | 1 line

          commit after update
          ------------------------------------------------------------------------

          以上各種svn log的用法看似復雜,實際上離不開兩樣東西:

           A.資源路徑:本地路徑(PATH)或遠程路徑(URL/URL PATH)
           B.版本號或版本范圍:-r 18:HEAD或者@19

          當我們知道了資源的版本變更歷史后,我們就可以著手進行回滾到歷史版本的操作了。


          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2009-12-09 16:01 Paul Lin 閱讀(314) 評論(0)  編輯  收藏 所屬分類: 項目管理
          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 金华市| 北宁市| 建宁县| 色达县| 祁连县| 诏安县| 伊宁市| 嘉祥县| 康平县| 南岸区| 扎鲁特旗| 贵港市| 灵台县| 景谷| 同江市| 丹东市| 恭城| 乡城县| 岳阳市| 安徽省| 邮箱| 北碚区| 朝阳市| 临夏市| 南城县| 玛纳斯县| 抚州市| 河东区| 安义县| 华亭县| 洪洞县| 淄博市| 百色市| 高清| 辉南县| 四川省| 玛沁县| 专栏| 临猗县| 肃宁县| 井陉县|