contrib/python-hook-examples.py
author Mads Kiilerich <madski@unity3d.com>
Mon, 25 Aug 2014 03:27:51 +0200
changeset 22293 a970a5c15b43
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
tests: fix p4 tests so they use separate ports and can be run in parallel

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