support hooks written in python.
to write hook in python, create module with hook function inside.
make sure mercurial can import module (put it in $PYTHONPATH or load it
as extension). hook function should look like this:
def myhook(ui, repo, hooktype, **kwargs):
if hook_passes:
return True
elif hook_explicitly_fails:
return False
elif some_other_failure:
import util
raise util.Abort('helpful failure message')
else:
return
# implicit return of None makes hook fail!
then in .hgrc, add hook with "python:" prefix:
[hooks]
commit = python:mymodule.myhook
#!/bin/sh
HG=hg
"$HG" init
mkdir b
echo 'Bouncy' >b/bouncy
echo 'tricycle' >b/vehicle
"$HG" add b/bouncy
"$HG" add b/vehicle
"$HG" commit -m 'Adding bouncy'
echo 'bouncy' >>b/bouncy
"$HG" commit -m 'Making it bouncier'
"$HG" update -C 0
echo 'stationary' >>b/vehicle
"$HG" commit -m 'Clarifying the vehicle.'
"$HG" update -C 1
chmod a-w b/vehicle
"$HG" update -m 2 2>&1 | sed 's|^\(.*[ ]\).*/\([^/]*/[^/]*/[^/]*\)$|\1\2|g'