view contrib/python-hook-examples.py @ 19928:d1ac3790e10a

localrepo: invoke only feature setup functions for enabled extensions Before this patch, each feature setup functions for localrepository class should examine whether corresponding extension is enabled or not by themselves. This patch invokes only feature setup functions defined in module of enabled extensions, and it makes implementation of feature setup functions easier and simpler.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 17 Oct 2013 21:45:17 +0900
parents a8d13ee0ce68
children 2b585677220e
line wrap: on
line source

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