bzr:在使用bazaar进行一些提交后恢复已删除的文件

时间:2009-10-26 18:30:14

标签: file commit restore bazaar

我想知道是否可以从旧版本中恢复已删除的文件(这是一种干净的方式)

我已经为某些测试重命名了一个文件,而不是我提交了所有的工作(我忘了重命名文件)并做了很多其他的提交...... 当我意识到,为时已晚......

此致  艾曼

3 个答案:

答案 0 :(得分:12)

最简单的方法是在删除文件之前简单地使用带有修订号的bzr revert

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

您无需合并任何内容。

答案 1 :(得分:4)

如果您在删除该文件时知道修订号(可以使用bzr log -v检查历史记录),则可以使用merge命令恢复该文件。因此,对于文件foo和修订号N,您需要运行命令:

bzr merge foo -r N..N-1

E.g。修订版287:

bzr merge foo -r 287..286

此命令将恢复您的文件,如修订版287.您需要提交此更改并完成。

答案 2 :(得分:0)

这不是最好的答案。请参阅bialix的答案,这个答案要简单得多。我会留在这里仅供参考。


以下是我认为最干净的方法:

  1. 创建分支:

    bzr branch mytree repair-path

  2. 进入修复分支

  3. 在其最后修订版本中仅恢复丢失的文件(例如,在此示例中为287):

    bzr revert -r 287 lost.file

  4. 提交更改

    bzr commit -m“Unhoot my foot”

  5. cd回到主分支

  6. 合并修复

    bzr merge repair-path

  7. 准备好后,提交合并并删除修复分支。

  8. 你可以通过恢复原来的工作分支来做到这一点,但这可能是不好的做法。您还需要担心(只是一点点)任何未提交的更改。

相关问题