view contrib/python-hook-examples.py @ 11438:88fc876a4833 stable

mq: fix qpush --move for selected guarded patches In the case of guarded patch, the patch could not be found because the full_series list contains also the guard value appended to each patch name. As we already checked that the patch is pushable above in the code, we just have to use the series list (which doesn't contains guard value) to get the patch index.
author Gilles Moris <gilles.moris@free.fr>
date Tue, 22 Jun 2010 09:49:51 +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)))