view contrib/python-hook-examples.py @ 8417:39cf453da958

clone: try updating to the actual changeset specified in options When cloning with the -r option or # url format from a tag the destination repo most likely won't have the tag. We can save the lookup result to get to the correct parent anyway. Similar to issue1306, but for tags.
author Brett Carter <brett@rdnzl.net>
date Thu, 14 May 2009 22:00:56 +0200
parents 62f11ef0df5b
children a8d13ee0ce68
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].parents()[0].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)))