contrib/python-hook-examples.py
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 19 Dec 2011 11:37:44 +0100
changeset 15697 21eb048edc19
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
phases: add a function to compute visible heads This function will be used to hide secret changeset.

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