如何在hg mq中更改提交消息?

时间:2017-02-15 10:15:05

标签: version-control mercurial mercurial-queue

我在工作区添加了4个补丁。 在创建这些补丁时,我使用了qnew -m "<commit-message>"。现在我注意到我没有给出正确的提交消息。如何修改所有提交消息?

我尝试了几件事:
$ hg ci;
abort: cannot commit over an applied mq patch

$ hg qci
abort: no queue repository

2 个答案:

答案 0 :(得分:1)

您只能通过qrefresh对队列中最后一个应用的修补程序执行此操作。如果您需要以相同的方式更改所有提交消息,例如在消息前面添加一个问题,然后你可以编写一个可以执行此操作的脚本。假设你已经应用了所有补丁,那么我们将qref一个补丁然后qpop直到所有补丁都改变了。 qheader会向您显示顶部补丁的消息。因此,使用bash,您的脚本大致如下所示:

amendment="ISSUE-123: "
echo "Let's go and change the patches"
while [ $? -ne 0 ]; do
    hg qref -m "${amendment} $(hg qheader)" && hg qpop
done

答案 1 :(得分:0)

你不应该再使用mq了。相反,使用hetedit,commit --amend或rebase。请参阅此post