Mercurial > hg
annotate contrib/python-hook-examples.py @ 27294:5aa2afb4f81a
hgweb: move entry-preparing code from webcommands to webutils.commonentry()
The new function is used to fill basic information about a ctx, such as
revision number and hash, author, commit message, etc. Before, every webcommand
used to get this basic information on its own using some boilerplate code, and
some things in some places just weren't available.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Fri, 13 Nov 2015 14:35:36 +0800 |
parents | a8d13ee0ce68 |
children | 2b585677220e |
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 ''' |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
4 from mercurial import patch, util |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
5 |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
6 def diffstat(ui, repo, **kwargs): |
7918
62f11ef0df5b
Change wording in example hook
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
7917
diff
changeset
|
7 '''Example usage: |
7917
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
8 |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
9 [hooks] |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
10 commit.diffstat = python:/path/to/this/file.py:diffstat |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
11 changegroup.diffstat = python:/path/to/this/file.py:diffstat |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
12 ''' |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
13 if kwargs.get('parent2'): |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
14 return |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
15 node = kwargs['node'] |
13878
a8d13ee0ce68
misc: replace .parents()[0] with p1()
Matt Mackall <mpm@selenic.com>
parents:
7918
diff
changeset
|
16 first = repo[node].p1().node() |
7917
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
17 if 'url' in kwargs: |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
18 last = repo['tip'].node() |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
19 else: |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
20 last = node |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
21 diff = patch.diff(repo, first, last) |
5a5396f49420
diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff
changeset
|
22 ui.write(patch.diffstat(util.iterlines(diff))) |