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 init
echo 123 > a
hg add a
hg commit -m "first" -d "1000000 0" a
mkdir sub
echo 321 > sub/b
hg add sub/b
hg commit -m "second" -d "1000000 0" sub/b
cat sub/b
hg co 0
cat sub/b 2>/dev/null || echo "sub/b not present"
ls sub 2>/dev/null || echo "sub not present"
true