contrib/python-hook-examples.py
author Siddharth Agarwal <sid0@fb.com>
Wed, 07 Jun 2017 21:17:06 -0700
changeset 32719 74680ed89a29
parent 28562 2b585677220e
child 39895 1a184b727aff
permissions -rw-r--r--
run-tests: output coverage to output dir There do not appear to be any tests for this, and I've never used either of these options before, but this works.

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