後恢復已刪除的文件,我想知道是否有可能恢復從舊版本刪除的文件(一個乾淨的方式來做到這一點)BZR:一些與提交集市
我改名文件進行一些測試,比我COMMITED我所有的工作(我忘了重命名文件),並做了很多其他的提交...... 當我意識到,這是爲時已晚......
問候, 艾曼
後恢復已刪除的文件,我想知道是否有可能恢復從舊版本刪除的文件(一個乾淨的方式來做到這一點)BZR:一些與提交集市
我改名文件進行一些測試,比我COMMITED我所有的工作(我忘了重命名文件),並做了很多其他的提交...... 當我意識到,這是爲時已晚......
問候, 艾曼
這不是最好的答案。請參閱bialix的答案,這很簡單。我將留在這裏僅供參考。
這就是我認爲是最乾淨的方法:
創建一個分支:
的bzr分支mytree修復路徑
光盤放入修復分支
恢復其最後修訂版中缺少的文件(e這裏是G 287):
BZR恢復-r 287 lost.file
提交更改
BZR提交-m 「Unshoot我的腳」
CD回主分支
合併在維修
的bzr合併修復路徑
準備就緒後,提交合並並刪除修復分支。
你可以通過恢復原始工作分支來做到這一點,但它可能是一個不錯的做法。您還需要擔心(只是一點點)關於任何未提交的更改。
如果您在刪除該文件時知道修訂號(可以使用bzr log -v
檢查歷史記錄),那麼您可以使用合併命令重新生成該文件。因此,對於文件foo
和版本號N
你需要運行命令:
bzr merge foo -r N..N-1
例如修訂287:
bzr merge foo -r 287..286
這個命令會恢復你的文件,如修訂287.您需要提交此變更和你做。
最簡單的方法就是使用bzr revert
用版本號被刪除的文件之前:
bzr revert -rX path/to/file
bzr commit -m 'Bringing path/to/file back'
你並不需要合併任何東西。
小心!這將撤銷rev 287的*整個*。我認爲您不能僅合併變更集中的一個特定文件。 – 2009-10-27 16:03:50
是的,bzr只能合併來自變更集的一個文件。你可以自己測試一下。 – bialix 2009-10-27 18:02:01
是的,你是對的。 +1。我撤回我的評論和我的回答。 我仍然會保持唯一的一點是,根據你工作的複雜性,在另一個分支中恢復可能是明智的。 – 2009-10-28 08:11:31