view contrib/python-hook-examples.py @ 29866:a5ce381a8da0

hghave: make bzr checks stricter My bzr does not have bzrlib.revisionspec.RevisionSpec, and thus tests were failing because convert refused to believe in bzr, but hghave without this change thought it was available.
author timeless <timeless@mozdev.org>
date Thu, 25 Aug 2016 22:51:39 +0000
parents 2b585677220e
children 1a184b727aff
line wrap: on
line source

'''
Examples of useful python hooks for Mercurial.
'''
from __future__ import absolute_import
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)))