contrib/python-hook-examples.py
author Pulkit Goyal <7895pulkit@gmail.com>
Sat, 01 Aug 2020 18:39:28 +0530
branchstable
changeset 45271 7fc3c5fbc65f
parent 43076 2372284d9457
child 45942 89a2afe31e82
permissions -rw-r--r--
mergestate: fix BC breakage introduced because of removal of a merge record In fcd0cff3400a I removed the usage of RECORD_RESOLVED_OTHER. However I also removed the reading support, hence if there is any user who runs into merge conflict with older version of hg, upgrades hg and then tries to read mergestate, they will end up with an MergeRecordUnsupportedError.

'''
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.changelog.tip()
    else:
        last = node
    diff = patch.diff(repo, first, last)
    ui.write(patch.diffstat(util.iterlines(diff)))