contrib/python-hook-examples.py
author Ryan McElroy <rmcelroy@fb.com>
Thu, 12 Jun 2014 18:07:21 -0700
changeset 21822 028a48105191
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
templater: add symbol to error This patch makes it easier to debug writing templater functions by telling the user exactly what was sent to the templater.

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