contrib/python-hook-examples.py
author Pierre-Yves David <pierre-yves.david@fb.com>
Thu, 29 May 2014 14:59:22 -0700
changeset 21656 36200dc6b3bd
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
getbundle: raise error if extra arguments are provided for bundle10 New arguments are most likely to be supported by bundle20 (and above) only.

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