python-hook-examples.py
27 lines
| 633 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 | ''' | ||
Pulkit Goyal
|
r28562 | from __future__ import absolute_import | ||
from mercurial import ( | ||||
patch, | ||||
util, | ||||
) | ||||
Alexander Solovyov
|
r7917 | |||
Augie Fackler
|
r43346 | |||
Alexander Solovyov
|
r7917 | def diffstat(ui, repo, **kwargs): | ||
Augie Fackler
|
r46554 | """Example usage: | ||
Alexander Solovyov
|
r7917 | |||
[hooks] | ||||
commit.diffstat = python:/path/to/this/file.py:diffstat | ||||
changegroup.diffstat = python:/path/to/this/file.py:diffstat | ||||
Augie Fackler
|
r46554 | """ | ||
Alexander Solovyov
|
r7917 | if kwargs.get('parent2'): | ||
return | ||||
node = kwargs['node'] | ||||
Matt Mackall
|
r13878 | first = repo[node].p1().node() | ||
Alexander Solovyov
|
r7917 | if 'url' in kwargs: | ||
Martin von Zweigbergk
|
r39931 | last = repo.changelog.tip() | ||
Alexander Solovyov
|
r7917 | else: | ||
last = node | ||||
diff = patch.diff(repo, first, last) | ||||
ui.write(patch.diffstat(util.iterlines(diff))) | ||||