Да, qnew создает реальный коммит и, таким образом, вызывает все соответствующие хуки фиксации. Вы можете убедиться в этом сами, временно отключив MQ, когда у вас есть исправление MQ и просматривая журнал.
Невозможно сделать так, чтобы хук pretxncommit применялся только к некоторым командам, кроме как с помощью фальсификации присяжных с другими хуками:
$ cat .hg/hgrc
[hooks]
pre-qnew = touch .hg/skiphook
post-qnew = rm .hg/skiphook
pretxncommit = test -e .hg/skiphook || echo not skipping
$ hg rm README # make some change
$ hg qnew asdf # no hook
$ hg qpop
$ hg rm README
$ hg ci -m asdf
not skipping
Здесь наш хук pretxncommit проверяет, что определенного файла не существует, прежде чем запускать его (тривиальный) хук, а хуки pre- / post-qnew создают файл и очищают его.