我在我的工作区中添加了 4 个补丁。在创建这些补丁时,我使用了qnew -m "<commit-message>"
. 现在我注意到我没有给出正确的提交信息。如何修改所有提交消息?
我尝试了几件事:
$ hg ci
;
abort: cannot commit over an applied mq patch
$ hg qci
abort: no queue repository
我在我的工作区中添加了 4 个补丁。在创建这些补丁时,我使用了qnew -m "<commit-message>"
. 现在我注意到我没有给出正确的提交信息。如何修改所有提交消息?
我尝试了几件事:
$ hg ci
;
abort: cannot commit over an applied mq patch
$ hg qci
abort: no queue repository
您只能通过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
你不应该再使用 mq 了。相反,使用 histedit、commit --amend 或 rebase。看到这个帖子。