2010-05-24 281 views
5

我不小心刪除了Tortoise-SVN Repro Browser中的主要文件夾。 工作文件夾不受影響。如何從SVN Repository中取消刪除

推薦的方法是什麼?
我只是恢復到以前的版本? 或者我是否需要對該舊版本進行簽出並將其刪除到新文件夾中並刪除舊文件夾?

+0

可能重複[什麼是簡單的方法來取消刪除文件在顛覆?](http://stackoverflow.com/questions/497670/whats-a-simple-way-to-undelete-a-file-in-顛覆) – gbjbaanb 2010-05-24 22:38:11

回答

8
  1. 更新你的工作副本頭版本
  2. 退房之前版本到一個新的文件夾
  3. SVN複製刪除文件夾從priorVersionFolder到headVersionFolder
  4. 添加在headVersionFolder
  5. SVN提交頭版本文件夾
+2

這不是推薦的方法。使用副本@REV就像你可以追蹤東西的來源。只需手動將文件複製到文件系統上即可刪除歷史記錄。 – 2010-05-24 22:10:44

+1

如果您使用「SVN Copy」,它會正確記錄複製的版本。我剛剛使用上面的描述對其進行了測試,現在TortoiseSvn中的日誌顯示該目錄是從修訂版本1(它存在的位置)複製而來的。 – 2010-05-24 22:28:05

1

您可以在刪除之前從版本中複製副本,將其添加回回購。

他們不是svn中真正的'取消刪除'選項。

0
  1. 檢出l一個新版本的回購目錄。
  2. 使用Tortoise合併到刪除前的版本。
  3. 檢入合併結果。

請參閱the Subversion book瞭解更多信息。

5

既然你提到你正在使用TortoiseSVN:

做一個TortoiseSVN的|在工作目錄上顯示日誌。 右鍵點擊簽入文件夾的位置。 選擇恢復此版本的更改。

這將重新創建您的工作文件夾中丟失的文件。然後,您可以恢復該修訂中您實際想保留的任何其他更改。一旦你的工作文件夾處於你想要的狀態,提交。

我不確定這個方法是否保留了歷史記錄。

+0

它似乎確實保留了歷史。 – Johnny 2014-11-15 15:37:18

0

您是否試過TortoiseSVN文檔?

這被描述爲Rollback revisions

會發生什麼情況是您將回滾刪除,因此之前的版本(刪除之前的版本)成爲新的HEAD修訂版本。缺失仍然會出現在日誌中,但它也描述瞭如何可以節省你的尷尬(儘管這更復雜):)

0

在命令行愛好者:

  • 首先找到版本號,其中您刪除事情發生了:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder 
    

說您發現該目錄在修訂版本999 (順便說一句刪除:你可能會發現更容易找到雷維斯與svn的瀏覽器的離子數)

  • 文件夾從版本零下1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/[email protected] http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder" 
    

瞧你就大功告成了複製!