linux svn恢復刪除的文件夾和文件(轉)


我覺得在window下面,查找被刪除的svn文件夾和文件是件比較麻煩的事,恢復就更麻煩了。有的時候,命令還是比鼠標要好用的。

下面做一個例子來說明一下,刪除和恢復的例子。

[root@BlackGhost branch]# svn delete tank  //標記刪除一個目錄,不是真正刪除  
D         tank  
[root@BlackGhost branch]# svn revert tank  //可以用svn revert dir 來恢復前面的操作  
Reverted 'tank'  
[root@BlackGhost branch]# svn commit tank -m "tank"  
svn: Working copy '/home/zhangy/checkout/repos' locked  
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)  
[root@BlackGhost branch]# svn cleanup   //如果出現鎖定的情況,cleanup一下  
[root@BlackGhost branch]# svn ci tank -m "tank"  
Deleting       tank  
  
Committed revision 21.  
[root@BlackGhost branch]# svn revert tank   //提交刪除后,用這個方法就不管用了  
Skipped 'tank'  

實際刪除文件夾和刪除文件的操作的方法有一點點不同

1,刪除文件夾后,要回到被刪除文件夾的上一級目錄

cd 父目錄
[root@BlackGhost main]# svn log -v |grep -C 4 tank
------------------------------------------------------------------------
r21 | zhangy | 2010-10-26 21:11:16 +0800 (Tue, 26 Oct 2010) | 1 line
Changed paths:
D /main/tank

a
------------------------------------------------------------------------
r20 | zhangy | 2010-10-26 21:10:59 +0800 (Tue, 26 Oct 2010) | 1 line
Changed paths:
M /main
A /main/tank

a
------------------------------------------------------------------------

從上面我們可以看出,在21版本的時候被刪除了,在20這個版本還在,我就可以將其恢復到20版本刪除前最新的版本

[root@BlackGhost main]# svn update -r 20 tank   //恢復刪除文件夾
A    tank
Updated to revision 20.

2,如果是刪除文件后,是不要回到上一級目錄,本目錄就行

[root@BlackGhost branch]# svn log -v |grep -C 4 test.php
------------------------------------------------------------------------
r13 | zhangy | 2010-10-26 21:11:16 +0800 (Tue, 26 Oct 2010) | 1 line
Changed paths:
D /branch/test.php     //在13版的時候,被刪除了。

test
------------------------------------------------------------------------
r12 | zhangy | 2010-10-26 21:10:59 +0800 (Tue, 26 Oct 2010) | 1 line
Changed paths:
M /branch
A /branch/test.php

test
------------------------------------------------------------------------

從上面可以看出,12版本test.php是有的

[root@BlackGhost branch]# svn update -r 12 test.php    //更新的時候,出現了以下問題
Skipped 'test.php'
At revision 12.
Summary of conflicts:       //提示是有沖突的
Skipped paths: 1
[root@BlackGhost branch]# svn resolve --accept working test.php   //解決沖突
Resolved conflicted state of 'test.php'
[root@BlackGhost branch]# svn update -r 12 test.php     //恢復刪除的文件
A    test.php
Updated to revision 12.

 



轉載請注明
作者:海底蒼鷹
地址:http://blog.51yip.com/server/1073.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM