contrib/python-hook-examples.py
author Yuya Nishihara <yuya@tcha.org>
Sun, 28 Sep 2014 15:13:35 +0900
changeset 22565 8d45a42b0c0f
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
heredoctest: do not append extra newline character to continuation line Trailing newline characters are kept in lines.

'''
Examples of useful python hooks for Mercurial.
'''
from mercurial import patch, util

def diffstat(ui, repo, **kwargs):
    '''Example usage:

    [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']
    first = repo[node].p1().node()
    if 'url' in kwargs:
        last = repo['tip'].node()
    else:
        last = node
    diff = patch.diff(repo, first, last)
    ui.write(patch.diffstat(util.iterlines(diff)))