Mercurial > hg
view tests/test-command-template.out @ 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 | d59fc0d4558f |
children | 78e7fd16f472 |
line wrap: on
line source
# default style is like normal output 18a19 > files: 29a31 > files: 43a46 > files: # compact style works 3[tip] 8c7f028fbabf 1970-01-16 01:06 +0000 person no user, no domain 2 259081bc29d1 1970-01-14 21:20 +0000 other no person 1 1c37ba774509 1970-01-13 17:33 +0000 other other 1 0 6eb5362d59ec 1970-01-12 13:46 +0000 user line 1 3[tip] 8c7f028fbabf 1970-01-16 01:06 +0000 person no user, no domain 2 259081bc29d1 1970-01-14 21:20 +0000 other no person 1 1c37ba774509 1970-01-13 17:33 +0000 other other 1 0 6eb5362d59ec 1970-01-12 13:46 +0000 user line 1 3[tip]:2,-1 8c7f028fbabf 1970-01-16 01:06 +0000 person no user, no domain 2:1,-1 259081bc29d1 1970-01-14 21:20 +0000 other no person 1:0,-1 1c37ba774509 1970-01-13 17:33 +0000 other other 1 0:-1,-1 6eb5362d59ec 1970-01-12 13:46 +0000 user line 1 # error if style not readable abort: Permission denied - ./q # error if no style abort: No such file or directory - notexist # error if style missing key abort: ./t: no key named 'changeset' # error if include fails abort: template file ./q: Permission denied # include works 3 2 1 0 # ui.style works 3 2 1 0 # keys work author: person author: other@place author: A. N. Other <other@place> author: User Name <user@hostname> author--verbose: person author--verbose: other@place author--verbose: A. N. Other <other@place> author--verbose: User Name <user@hostname> author--debug: person author--debug: other@place author--debug: A. N. Other <other@place> author--debug: User Name <user@hostname> branches: branches: branches: branches: branches--verbose: branches--verbose: branches--verbose: branches--verbose: branches--debug: branches--debug: branches--debug: branches--debug: date: 1300000.00 date: 1200000.00 date: 1100000.00 date: 1000000.00 date--verbose: 1300000.00 date--verbose: 1200000.00 date--verbose: 1100000.00 date--verbose: 1000000.00 date--debug: 1300000.00 date--debug: 1200000.00 date--debug: 1100000.00 date--debug: 1000000.00 desc: no user, no domain desc: no person desc: other 1 other 2 other 3 desc: line 1 line 2 desc--verbose: no user, no domain desc--verbose: no person desc--verbose: other 1 other 2 other 3 desc--verbose: line 1 line 2 desc--debug: no user, no domain desc--debug: no person desc--debug: other 1 other 2 other 3 desc--debug: line 1 line 2 file_adds: file_adds: file_adds: file_adds: file_adds--verbose: file_adds--verbose: file_adds--verbose: file_adds--verbose: file_adds--debug: file_adds--debug: c file_adds--debug: b file_adds--debug: a file_dels: file_dels: file_dels: file_dels: file_dels--verbose: file_dels--verbose: file_dels--verbose: file_dels--verbose: file_dels--debug: file_dels--debug: file_dels--debug: file_dels--debug: files: c files: c files: b files: a files--verbose: c files--verbose: c files--verbose: b files--verbose: a files--debug: c files--debug: files--debug: files--debug: manifest: manifest: manifest: manifest: manifest--verbose: manifest--verbose: manifest--verbose: manifest--verbose: manifest--debug: 3:cb5a1327723b manifest--debug: 2:6e0e82995c35 manifest--debug: 1:4e8d705b1e53 manifest--debug: 0:a0c8bcbbb45c node: 8c7f028fbabf93fde80ef788885370b36abeff33 node: 259081bc29d176c6ae17af5dd01a3440b3288c97 node: 1c37ba7745099d0f206b3a663abcfe127b037433 node: 6eb5362d59ec784e4431d3e140c8cc6e1b77ce82 node--verbose: 8c7f028fbabf93fde80ef788885370b36abeff33 node--verbose: 259081bc29d176c6ae17af5dd01a3440b3288c97 node--verbose: 1c37ba7745099d0f206b3a663abcfe127b037433 node--verbose: 6eb5362d59ec784e4431d3e140c8cc6e1b77ce82 node--debug: 8c7f028fbabf93fde80ef788885370b36abeff33 node--debug: 259081bc29d176c6ae17af5dd01a3440b3288c97 node--debug: 1c37ba7745099d0f206b3a663abcfe127b037433 node--debug: 6eb5362d59ec784e4431d3e140c8cc6e1b77ce82 parents: parents: parents: parents: parents--verbose: parents--verbose: parents--verbose: parents--verbose: parents--debug: 2:259081bc29d1 -1:000000000000 parents--debug: 1:1c37ba774509 -1:000000000000 parents--debug: 0:6eb5362d59ec -1:000000000000 parents--debug: -1:000000000000 -1:000000000000 rev: 3 rev: 2 rev: 1 rev: 0 rev--verbose: 3 rev--verbose: 2 rev--verbose: 1 rev--verbose: 0 rev--debug: 3 rev--debug: 2 rev--debug: 1 rev--debug: 0 tags: tip tags: tags: tags: tags--verbose: tip tags--verbose: tags--verbose: tags--verbose: tags--debug: tip tags--debug: tags--debug: tags--debug: # filters work place place hostname person other A. N. Other User Name person other other user Fri Jan 16 01:06:40 1970 +0000 Wed Jan 14 21:20:00 1970 +0000 Tue Jan 13 17:33:20 1970 +0000 Mon Jan 12 13:46:40 1970 +0000 1970-01-16 01:06 +0000 1970-01-14 21:20 +0000 1970-01-13 17:33 +0000 1970-01-12 13:46 +0000 Fri, 16 Jan 1970 01:06:40 +0000 Wed, 14 Jan 1970 21:20:00 +0000 Tue, 13 Jan 1970 17:33:20 +0000 Mon, 12 Jan 1970 13:46:40 +0000 no user, no domain no person other 1 line 1 8c7f028fbabf 259081bc29d1 1c37ba774509 6eb5362d59ec # error on syntax abort: t:3: unmatched quotes # done