Mercurial > hg
annotate contrib/python-hook-examples.py @ 45789:09735cde6275
phases: allow registration and boundary advancement with revision sets
The core internals either use revision sets already or can trivially use
them. Use the new interface in cg1unpacker.apply to avoid materializing
the list of all new nodes as it is normally just a revision range. This
avoids about 67 Bytes / changeset on AMD64 in peak RSS.
Differential Revision: https://phab.mercurial-scm.org/D9232
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Mon, 19 Oct 2020 02:54:12 +0200 |
parents | 2372284d9457 |
children | 89a2afe31e82 |
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))) |