contrib/python-hook-examples.py
author Sean Farley <sean@farley.io>
Tue, 13 Jun 2017 11:10:22 -0700
changeset 33022 e0a8dd6c87c7
parent 28562 2b585677220e
child 39900 1a184b727aff
permissions -rw-r--r--
bookmarks: factor out rename logic from commands We keep the lock in the caller so that future devs are aware of the locking implications.

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