The error message is accurate. The problem is that the mq-no-push
hook exited with a status of 1. Mercuial doesn't know what the hook is for and so it can't tell you anything other than its return code. It's up to the hook itself to provide a meaningful message as to why you can't push.
If you look at the output before the abort line, you can see that the problem is that your shell /bin/sh
cannot find the command !
which means that the hook isn't actually working and makes me believe that the hook is not formatted correctly. I don't know enough about Linux/Unix/MacOSX shells to know what the solution is. I looked on the mq extension page and the configuration that you have is the same as the examples given so I wonder if there is something set up incorrectly in your shell.