contrib/python-hook-examples.py
author Pierre-Yves David <pierre-yves.david@fb.com>
Wed, 01 Jul 2015 01:02:27 -0700
changeset 25719 c51a18609a7f
parent 13878 a8d13ee0ce68
child 28562 2b585677220e
permissions -rw-r--r--
hgweb: also refresh the repo on changes to the obsstore Before this change, hgweb could miss update to the obsolescence markers store if that was the only change between two commands.

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