我有这个Mercurial资料库,其中有一个柜台:
$ echo 1 > count
$ hg add count
$ hg com -m 'incrementing to 1'
$ echo 2 > count
$ hg com -m 'incrementing to 2'
到目前为止很好,但是后来我犯了一个错误:
$ hg com -m 'incrementing to 3'
因此,我使用hg strip
还原了最后一次提交:
$ hg strip --keep -r -2
saved backup bundle to /home/adam/sandbox/count/.hg/strip-backup/bda856a578bf-ff2b025f-backup.hg
我不知道,我犯了另一个更大的错误!我剥离了两个最高的提交,而我只想剥离最高的一个:
$ hg log
changeset: 0:7b5533cf962a
tag: tip
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed May 15 08:00:27 2019 -0300
summary: incrementing to 1
我如何找回我的提交?
注意:这是我需要使用hg strip
的情况的人为例子。无需浪费时间指出还有其他选择。
答案 0 :(得分:0)
正如我从this message in Mercurial's mailing list中学到的,解决方案非常简单。请注意,当我运行hg strip --keep -r -2
时,我在输出中得到了这一行:
saved backup bundle to /home/adam/sandbox/count/.hg/strip-backup/bda856a578bf-ff2b025f-backup.hg
因此,基本上,Mercurial备份了原始历史记录!现在我只需要从中退出:
$ hg pull /home/adam/sandbox/count/.hg/strip-backup/bda856a578bf-ff2b025f-backup.hg
pulling from /home/adam/sandbox/count/.hg/strip-backup/bda856a578bf-ff2b025f-backup.hg
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 1 files
(run 'hg update' to get a working copy)
$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
我的文件恢复到原始状态...
$ cat count
66
...以及我的历史记录:
$ hg log
changeset: 2:fc4d1cc18a4b
tag: tip
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed May 15 08:00:51 2019 -0300
summary: incrementing to 3
changeset: 1:bda856a578bf
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed May 15 08:00:38 2019 -0300
summary: incrementing to 2
changeset: 0:7b5533cf962a
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed May 15 08:00:27 2019 -0300
summary: incrementing to 1
现在我可以调用正确的剥离命令(hg strip --keep -r -1
)。
您可能已经丢失了备份文件名(这确实发生在我身上!),但是您可以在$YOUR_REPO/.hg/strip-backup
中找到它。如果您有很多备份,只需按时间顺序列出它们,降序:
$ ls -tl .hg/strip-backup/
total 4
-rw-rw-r-- 1 adam adam 754 May 15 08:10 bda856a578bf-ff2b025f-backup.hg
-rw-rw-r-- 1 adam adam 754 May 15 08:02 02ac79859dd0-0902f53b-backup.hg
最后一个可能是您想要的那个。