contrib/python-hook-examples.py
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 14 Oct 2015 17:43:44 -0700
changeset 26679 0d93df4d1e44
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
highlight: inline checkfctx() It is only used once. pygmentize() is pretty small. Let's just inline it.

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