annotate contrib/python-hook-examples.py @ 43190:c19b327017b9

phabricator: add addremoved and addmodified functions These are relatively simple so add them together. As the name indicates, these add phabchange objects for removed and modified files to the phabdiff. Differential Revision: https://phab.mercurial-scm.org/D7049
author Ian Moody <moz-ian@perix.co.uk>
date Sun, 06 Oct 2019 16:57:26 +0100
parents 2372284d9457
children 89a2afe31e82
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
1 '''
7918
62f11ef0df5b Change wording in example hook
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7917
diff changeset
2 Examples of useful python hooks for Mercurial.
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
3 '''
28562
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
4 from __future__ import absolute_import
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
5 from mercurial import (
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
6 patch,
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
7 util,
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
8 )
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
9
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39895
diff changeset
10
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
11 def diffstat(ui, repo, **kwargs):
7918
62f11ef0df5b Change wording in example hook
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7917
diff changeset
12 '''Example usage:
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
13
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
14 [hooks]
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
15 commit.diffstat = python:/path/to/this/file.py:diffstat
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
16 changegroup.diffstat = python:/path/to/this/file.py:diffstat
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
17 '''
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
18 if kwargs.get('parent2'):
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
19 return
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
20 node = kwargs['node']
13878
a8d13ee0ce68 misc: replace .parents()[0] with p1()
Matt Mackall <mpm@selenic.com>
parents: 7918
diff changeset
21 first = repo[node].p1().node()
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
22 if 'url' in kwargs:
39895
1a184b727aff repo: don't look up context for tip node if it's not needed
Martin von Zweigbergk <martinvonz@google.com>
parents: 28562
diff changeset
23 last = repo.changelog.tip()
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
24 else:
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
25 last = node
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
26 diff = patch.diff(repo, first, last)
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
27 ui.write(patch.diffstat(util.iterlines(diff)))