contrib/python-hook-examples.py
author Pierre-Yves David <pierre-yves.david@fb.com>
Thu, 24 Sep 2015 01:04:10 -0700
changeset 26329 d9537ce64f3a
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
addremove: remove a mutable default argument Mutable default arguments are know to the state of California to cause bugs.

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