2009-10-26 49 views
9

後恢復已刪除的文件,我想知道是否有可能恢復從舊版本刪除的文件(一個乾淨的方式來做到這一點)BZR:一些與提交集市

我改名文件進行一些測試,比我COMMITED我所有的工作(我忘了重命名文件),並做了很多其他的提交...... 當我意識到,這是爲時已晚......

問候, 艾曼

回答

0

這不是最好的答案。請參閱bialix的答案,這很簡單。我將留在這裏僅供參考。


這就是我認爲是最乾淨的方法:

  1. 創建一個分支:

    的bzr分支mytree修復路徑

  2. 光盤放入修復分支

  3. 恢復其最後修訂版中缺少的文件(e這裏是G 287):

    BZR恢復-r 287 lost.file

  4. 提交更改

    BZR提交-m 「Unshoot我的腳」

  5. CD回主分支

  6. 合併在維修

    的bzr合併修復路徑

  7. 準備就緒後,提交合並並刪除修復分支。

你可以通過恢復原始工作分支來做到這一點,但它可能是一個不錯的做法。您還需要擔心(只是一點點)關於任何未提交的更改。

4

如果您在刪除該文件時知道修訂號(可以使用bzr log -v檢查歷史記錄),那麼您可以使用合併命令重新生成該文件。因此,對於文件foo和版本號N你需要運行命令:

bzr merge foo -r N..N-1 

例如修訂287:

bzr merge foo -r 287..286 

這個命令會恢復你的文件,如修訂287.您需要提交此變更和你做。

+0

小心!這將撤銷rev 287的*整個*。我認爲您不能僅合併變更集中的一個特定文件。 – 2009-10-27 16:03:50

+0

是的,bzr只能合併來自變更集的一個文件。你可以自己測試一下。 – bialix 2009-10-27 18:02:01

+0

是的,你是對的。 +1。我撤回我的評論和我的回答。 我仍然會保持唯一的一點是,根據你工作的複雜性,在另一個分支中恢復可能是明智的。 – 2009-10-28 08:11:31

12

最簡單的方法就是使用bzr revert用版本號被刪除的文件之前:

bzr revert -rX path/to/file 
bzr commit -m 'Bringing path/to/file back' 

你並不需要合併任何東西。

相關問題