python-hook-examples.py
22 lines
| 578 B
| text/x-python
|
PythonLexer
/ contrib / python-hook-examples.py
Alexander Solovyov
|
r7917 | ''' | ||
Benoit Boissinot
|
r7918 | Examples of useful python hooks for Mercurial. | ||
Alexander Solovyov
|
r7917 | ''' | ||
from mercurial import patch, util | ||||
def diffstat(ui, repo, **kwargs): | ||||
Benoit Boissinot
|
r7918 | '''Example usage: | ||
Alexander Solovyov
|
r7917 | |||
[hooks] | ||||
commit.diffstat = python:/path/to/this/file.py:diffstat | ||||
changegroup.diffstat = python:/path/to/this/file.py:diffstat | ||||
''' | ||||
if kwargs.get('parent2'): | ||||
return | ||||
node = kwargs['node'] | ||||
Matt Mackall
|
r13878 | first = repo[node].p1().node() | ||
Alexander Solovyov
|
r7917 | if 'url' in kwargs: | ||
last = repo['tip'].node() | ||||
else: | ||||
last = node | ||||
diff = patch.diff(repo, first, last) | ||||
ui.write(patch.diffstat(util.iterlines(diff))) | ||||