contrib/python-hook-examples.py
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 25 Apr 2014 14:51:53 -0700
changeset 21528 32b9bbca2052
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
run-tests: pass jobs into TestSuite constructor This starts a series of patches that will lessen the importance of TestRunner. It will remove the TestRunner instance stored inside the TestSuite.

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