如何使用MQ在Mercurial中检索意外删除的补丁

时间:2011-03-25 13:12:30

标签: mercurial mercurial-queue

我有两个系列补丁,都没有应用,我不小心在错误的地方调用了qdelete。有没有办法扭转此操作并恢复补丁?我在这个工作中做了大量的工作!!!

2 个答案:

答案 0 :(得分:4)

避免这种情况的方法(我知道它现在没有用,对不起)不仅仅是使用Mercurial Queues,mq,而是将它与补丁库一起使用。 Mercurial / mq对此有很大的支持。

最初创建队列时,您可以:

hg qinit --create-repo

(而不仅仅是hg qinit),它在.hg/patches目录中创建一个新的Mercurial存储库。然后你可以使用:

hg commit --mq

提交所有补丁文件,并将其恢复原状仅仅是:

hg revert --mq

底线,我知道它现在没有帮助你,但也许它会帮助下一个人或者你以后,是:如果你正在编写代码并且它没有在某个地方提交它没有不存在 - 早期提交并经常推送

答案 1 :(得分:3)

不幸的是,如果在调用-k命令时没有使用qdelete选项,则补丁文件也会被删除。因此,您唯一的希望是备份或可以执行某些“取消删除”操作的工具。