contrib/python-hook-examples.py
author Adrian Buehlmann <adrian@cadifra.com>
Fri, 12 Oct 2012 19:43:24 +0200
changeset 17780 769f66861eb8
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
perf: simply use repo.store for perffncache* commands This makes sure that .hg/requires is observed and the correct kind of store object is created. Otherwise we might mutilate our test repos when experimenting with new repo formats.

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