contrib/python-hook-examples.py
author Martin Geisler <mg@lazybytes.net>
Sat, 27 Jun 2009 13:08:07 +0200
changeset 8949 8d985f0e54ae
parent 7918 62f11ef0df5b
child 13878 a8d13ee0ce68
permissions -rw-r--r--
highlight: remove author name from docstring I don't feel this should be part of the documentation. The name of the original author can of course still be found with 'hg log'.

'''
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].parents()[0].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)))