contrib/python-hook-examples.py
author Alexander Plavin <alexander@plav.in>
Fri, 06 Sep 2013 13:30:58 +0400
changeset 19834 80633eac7b9d
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
hgweb: eliminate extra complexity in process_dates definition There was an extra anonymous outer function, called immediately. It is removed in this patch.

'''
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)))