我在命令行中使用mercurial Hg。创建补丁后,由于稍后发生了一些错误,我需要恢复到另一个变更集。现在需要刷新补丁文件。在执行Hg qref
时,它会显示abort: working directory revision is not qtip
。此外,hg parent
是一个提示。
答案 0 :(得分:2)
我将添加一个答案,以帮助将来可能遇到相同错误消息的其他人。我不确定我们的问题是否相同,但肯定是相关的。
我尝试将补丁应用到我的工作目录时“中止:工作目录修订版不是qtip”。 事实证明,我在补丁队列中有较旧的补丁导致了这个问题,在我删除它们之后再次尝试它有效!
这是我做的: 打开控制台窗口并导航到我输入命令的工作目录:
hg qseries
这列出了补丁队列。然后删除我输入的旧补丁:
hg qdelete [补丁名称(刚刚列出)]
我的案例中的回复是“中止:无法删除已应用的补丁...”并解决了我输入的内容:
hg qpop
这个未应用补丁然后我可以再次使用“hg qdelete”命令,现在可以使用。重复此操作,直到所有旧补丁都消失,并尝试再次应用新补丁。
在Bryan O'Sullivan根据第12.7.1节撰写的“Mercurial:The Definitive Guide”中找到了解决方案。 http://tortoisehg.bitbucket.io/hgbook/1.4/managing-change-with-mercurial-queues.html#id2858507
希望有人觉得这很有用!
答案 1 :(得分:0)
这是因为当前的头部弹出队列而发生的。为了刷新,补丁应该被qpush
带入队列的头部。