posts - 262,  comments - 221,  trackbacks - 0
          【14】svn update與svn revert
          對于svn revert命令,前面我們分別通過“回滾文件內(nèi)容”,“回滾屬性”,“回滾操作”來給出直觀的認(rèn)識(shí)。現(xiàn)在我們再通過一個(gè)稍微復(fù)雜的例子來進(jìn)一步了解svn revet命令。

          假設(shè)現(xiàn)在我們的目錄環(huán)境如下:
          C:\>svn list E:\Temp\ECoupon
          WebRoot
          /
          doc
          /
          read
          -from-repo.txt
          read
          -from-wc.txt
          src
          /

          前面我們提到對于尚未提交的本地修改,可以使用svn revet回滾。那么如果我們使用svn update來從版本庫同步到本地文件,不也是可以達(dá)到同樣的目的嗎?事實(shí)是這樣嗎?

          C:\>svn status E:\Temp\ECoupon
          M      E:
          \Temp\ECoupon\read-from-wc.txt

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

          C:
          \>svn status E:\Temp\ECoupon
          M      E:
          \Temp\ECoupon\read-from-wc.txt

          C:
          \>svn cat E:\Temp\ECoupon\read-from-wc.txt

          C:
          \>type E:\Temp\ECoupon\read-from-wc.txt
          Wrong content, don
          't commit!

          C:
          \>svn diff -r HEAD E:\Temp\ECoupon\read-from-wc.txt
          Index: E:
          /Temp/ECoupon/read-from-wc.txt
          ========================================================
          --- E:/Temp/ECoupon/read-from-wc.txt    (revision 18)
          +++ E:/Temp/ECoupon/read-from-wc.txt    (working copy)
          @@ 
          -0,0 +1 @@
          +Wrong content, don't commit!
          \ No newline at end of file

          可以發(fā)現(xiàn),即便我們執(zhí)行了svn update操作,本地已經(jīng)修改的文件仍然不會(huì)被回滾到和版本庫一樣的版本。這是因?yàn)椋?br />
          因?yàn)镾VN為了保護(hù)用戶不小心update操作而覆蓋自己本地的修改,不會(huì)對已經(jīng)被修改但尚未提交的資源進(jìn)行update操作。像這種情況下只能用svn revert而不能用svn update。

          【15】svn del與svn revert
          好了,那么假如現(xiàn)在我們在修改后臨提交之前發(fā)覺這個(gè)read-from-wc.txt是不需要的,我們要?jiǎng)h除而不是回滾它了。該怎么做?看看下面的實(shí)驗(yàn):

          C:\>svn del E:\Temp\ECoupon\read-from-wc.txt
          svn: Use 
          --force to override this restriction
          svn: 
          'E:\Temp\ECoupon\read-from-wc.txt' has local modifications

          C:
          \>svn del E:\Temp\ECoupon\read-from-wc.txt --force
          D         E:
          \Temp\ECoupon\read-from-wc.txt

          C:
          \>svn status E:\Temp\ECoupon
          D      E:
          \Temp\ECoupon\read-from-wc.txt

          上面的實(shí)驗(yàn)我們一共做了2個(gè)變更:
           A.修改本地文件read-from-wc.txt
           B.標(biāo)記刪除本地文件read-from-wc.txt

          和svn update不會(huì)對已修改而尚未提交的資源進(jìn)行update一樣,svn del同樣不會(huì)刪除已修改但尚未提交的資源---除非你強(qiáng)制加上--force參數(shù)。

          如果此時(shí)我們又想反悔了,那么再次執(zhí)行svn revert命令會(huì)有什么后果:

          C:\>svn revert E:\Temp\ECoupon\read-from-wc.txt
          Reverted 
          'E:\Temp\ECoupon\read-from-wc.txt'

          C:
          \>svn status E:\Temp\ECoupon\read-from-wc.txt

          C:
          \>svn diff -r HEAD E:\Temp\ECoupon\read-from-wc.txt

          C:
          \>

          好了,現(xiàn)在文件read-from-wc.txt又回來,但是之前我們對它進(jìn)行的本地修改也跟著不見了!這是因?yàn)閟vn revert回滾的是所有本地未提交的操作,內(nèi)容,屬性。所以在回滾刪除操作之時(shí),也會(huì)連修改操作也一起回滾。這個(gè)教訓(xùn)告訴我們:

          不要把所有變更都放在最后一次性提交,提交要及時(shí)、多次。否則一旦回滾所有其他修改都會(huì)跟著撤銷。


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

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點(diǎn)博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 合川市| 封开县| 汉沽区| 德钦县| 盘锦市| 伊通| 惠安县| 龙泉市| 舟曲县| 梨树县| 陆河县| 邻水| 盐池县| 深泽县| 怀仁县| 乌兰浩特市| 个旧市| 驻马店市| 黔东| 额尔古纳市| 茶陵县| 公安县| 蓬安县| 新邵县| 长葛市| 闻喜县| 筠连县| 绥中县| 乌鲁木齐市| 方城县| 武安市| 济阳县| 应用必备| 平果县| 景宁| 长白| 克什克腾旗| 峨眉山市| 壶关县| 和林格尔县| 荔浦县|