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
#header#
<title>#repo|escape#:#file|escape#</title>
</head>
<body>
<div class="buttons">
<a href="?cl=#rev#">changelog</a>
<a href="?tags=">tags</a>
<a href="?cs=#node|short#">changeset</a>
<a href="?mf=#manifest|short#;path=#path|urlescape#">manifest</a>
<a href="?fl=#filenode|short#;file=#file|urlescape#">revisions</a>
<a href="?fa=#filenode|short#;file=#file|urlescape#">annotate</a>
<a href="?f=#filenode|short#;file=#file|urlescape#;style=raw">raw</a>
</div>
<h2>#file|escape#</h2>
<table>
<tr>
<td class="metatag">changeset #rev#:</td>
<td><a href="?cs=#node|short#">#node|short#</a></td></tr>
#rename%filerename#
#parent%filerevparent#
#child%filerevchild#
<tr>
<td class="metatag">author:</td>
<td>#author|obfuscate#</td></tr>
<tr>
<td class="metatag">date:</td>
<td>#date|date# (#date|age# ago)</td></tr>
<tr>
<td class="metatag">permissions:</td>
<td>#permissions|permissions#</td></tr>
</table>
<pre>
#text%fileline#
</pre>
#footer#