當尋找SVN還原命令的解釋,我看到了如下的解釋:需要澄清SVN恢復
此子命令不需要網絡接入,並解決任何 衝突狀態。但是,它不會恢復已刪除的目錄。
我想知道,爲什麼它不需要網絡訪問,以及爲什麼它不能恢復已刪除的目錄。
當尋找SVN還原命令的解釋,我看到了如下的解釋:需要澄清SVN恢復
此子命令不需要網絡接入,並解決任何 衝突狀態。但是,它不會恢復已刪除的目錄。
我想知道,爲什麼它不需要網絡訪問,以及爲什麼它不能恢復已刪除的目錄。
svn revert
不需要網絡訪問,因爲每個工作副本都存儲每個文件的「原始」副本,因爲它是在上次更新時從存儲庫下載的。因此revert
將該文件複製到您的工作副本中。
至於刪除的目錄,這可能不再是真實的。在1.7之前的版本中,每個目錄可以被當作一個獨立的工作副本,因此它可能無法恢復那些沒有原始副本的目錄。
svn
在.svn
文件夾中保存有關工作副本的信息,並使用它在工作副本上執行一些管理任務,而無需訪問資源庫即通過網絡。如果你瀏覽這些目錄,你會發現一個本地數據庫文件和一堆.svn-base
文件的束縛子目錄。這些反映了您上次執行svn update
或svn checkout
時工作副本的狀態。因此,如果您在工作副本中更改文件svn
可以根據相應的本地保存的.svn-base
文件來區分差異,從而可以恢復更改。
有關目錄結構的信息不會保存。如果要恢復目錄上的更改,最簡單的方法是從該目錄的父級執行
svn update
- 顯然需要存儲庫並因此需要網絡連接。
看來你正在閱讀老版本的svn客戶端的幫助,發佈在this question的答案中。
隨着1.7版(至少,我不能確認哪個版本的正是這種變化是)及以上svn help revert
狀態:
注:此子命令不需要網絡訪問,並且解決所有的衝突狀態。
而且在我的本地拷貝的一個經過一些測試:
使用文件系統
Cmd-$> rd /Q /S <working copy>
刪除或使用SVN命令
Cmd-$> svn remove <working copy>
D <working copy>
D <working copy>\<file1>
D <working copy>\<file2>
刪除使用命令
Cmd-$> svn revert -R .
我能夠在兩種情況下恢復。
當你說「我看到下面的解釋」時,通常會提供一個鏈接來幫助他人閱讀你所指的內容,並確保它是一個值得信賴的來源,而且你沒有誤解任何東西。 – alroc