Commit blocked by pre-commit hook (exit code 255) with no output.

That’s what is seen client-side, and this is what is seen server-side:

Revprop change blocked by pre-revprop-change hook (exit code 255) with no output. [500, #165001]

In most cases the usual search results will point you where you need:

  • execute permission not set on the hook script
  • missing hook script allowing property change
  • wrong line endings

In my case:

I recently moved the repositories off of a smaller file system to a larger one that had noexec set. Spent an hour+ trying to figure it out and it took a combination of this error message:

# ./
-bash: ./ Permission denied

and remembering that I had run into this in the past before it dawned on me.