Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-copy2 @ 2155:ff255b41b4aa
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
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Fri, 28 Apr 2006 15:50:22 -0700 |
parents | 94f38724283f |
children | c0b449154a90 |
line wrap: on
line source
#!/bin/sh hg init echo foo > foo hg add foo hg commit -m1 -d"0 0" echo "# should show copy" hg copy foo bar hg debugstate|grep '^copy' echo "# shouldn't show copy" hg commit -m2 -d"0 0" hg debugstate|grep '^copy' echo "# should match" hg debugindex .hg/data/foo.i hg debugrename bar echo bleah > foo echo quux > bar hg commit -m3 -d"0 0" echo "# should not be renamed" hg debugrename bar hg copy -f foo bar echo "# should show copy" hg debugstate|grep '^copy' hg commit -m3 -d"0 0" echo "# should show no parents for tip" hg debugindex .hg/data/bar.i echo "# should match" hg debugindex .hg/data/foo.i hg debugrename bar echo "# should show no copies" hg debugstate|grep '^copy' exit 0