Mercurial > hg
annotate hgext/graphlog.py @ 36523:e7411fb7ba7f
wireprotoserver: ability to run an SSH server until an event is set
It seems useful to be able to start an SSH protocol server that
won't run forever and won't call sys.exit() when it stops. This
could be used to facilitate intra-process testing of the SSH
protocol, for example.
We teach the server function to loop until a threading.Event is set
and invent a new API to run the server until an event is set. It also
won't sys.exit() afterwards.
There aren't many callers of serve_forever(). So we could refactor
them relatively easily. But I was lazy.
threading.Event might be a bit heavyweight. An alternative would be
a list whose only elements is changed. We can't use a simple scalar
value like a bool or int because those types are immutable. Events
are what you use in systems programming for this use case, so the
use of threading.Event seems justified.
Differential Revision: https://phab.mercurial-scm.org/D2461
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 24 Feb 2018 12:07:21 -0800 |
parents | 0c9ba2ac60a8 |
children | c303d65d2e34 |
rev | line source |
---|---|
4344 | 1 # ASCII graph log extension for Mercurial |
2 # | |
3 # Copyright 2007 Joel Rosdahl <joel@rosdahl.net> | |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4509
diff
changeset
|
4 # |
8225
46293a0c7e9f
updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents:
8210
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
10263 | 6 # GNU General Public License version 2 or any later version. |
8228
eee2319c5895
add blank line after copyright notices and after header
Martin Geisler <mg@lazybytes.net>
parents:
8225
diff
changeset
|
7 |
20118
6ed9141151bf
graphlog: mark as deprecated
Martin Geisler <martin@geisler.net>
parents:
18267
diff
changeset
|
8 '''command to view revision graphs from a shell (DEPRECATED) |
6ed9141151bf
graphlog: mark as deprecated
Martin Geisler <martin@geisler.net>
parents:
18267
diff
changeset
|
9 |
6ed9141151bf
graphlog: mark as deprecated
Martin Geisler <martin@geisler.net>
parents:
18267
diff
changeset
|
10 The functionality of this extension has been include in core Mercurial |
27715
f93e7540db8c
graphlog: update help with replacement
timeless <timeless@mozdev.org>
parents:
27149
diff
changeset
|
11 since version 2.3. Please use :hg:`log -G ...` instead. |
7426
df0962f6c54e
Graphlog extension adds a --graph option to log/in/out
Alpar Juttner <alpar@cs.elte.hu>
parents:
7383
diff
changeset
|
12 |
df0962f6c54e
Graphlog extension adds a --graph option to log/in/out
Alpar Juttner <alpar@cs.elte.hu>
parents:
7383
diff
changeset
|
13 This extension adds a --graph option to the incoming, outgoing and log |
9259
19a4b8fd5c48
graphlog: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents:
9198
diff
changeset
|
14 commands. When this options is given, an ASCII representation of the |
19a4b8fd5c48
graphlog: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents:
9198
diff
changeset
|
15 revision graph is also shown. |
7426
df0962f6c54e
Graphlog extension adds a --graph option to log/in/out
Alpar Juttner <alpar@cs.elte.hu>
parents:
7383
diff
changeset
|
16 ''' |
4344 | 17 |
29123
0e6b5a5aca22
py3: make hgext/graphlog.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27715
diff
changeset
|
18 from __future__ import absolute_import |
0e6b5a5aca22
py3: make hgext/graphlog.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27715
diff
changeset
|
19 |
4344 | 20 from mercurial.i18n import _ |
29123
0e6b5a5aca22
py3: make hgext/graphlog.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27715
diff
changeset
|
21 from mercurial import ( |
32375
04baab18d60a
commands: move templates of common command options to cmdutil (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
22 cmdutil, |
29123
0e6b5a5aca22
py3: make hgext/graphlog.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27715
diff
changeset
|
23 commands, |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
29841
diff
changeset
|
24 registrar, |
29123
0e6b5a5aca22
py3: make hgext/graphlog.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27715
diff
changeset
|
25 ) |
5938
9ed100559851
graphlog: add filelog revision grapher
Steve Borho <steve@borho.org>
parents:
4735
diff
changeset
|
26 |
14311
9bbac962f4dd
graphlog: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com>
parents:
14139
diff
changeset
|
27 cmdtable = {} |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
29841
diff
changeset
|
28 command = registrar.command(cmdtable) |
29841
d5883fd055c6
extensions: change magic "shipped with hg" string
Augie Fackler <augie@google.com>
parents:
29123
diff
changeset
|
29 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for |
25186
80c5b2666a96
extensions: document that `testedwith = 'internal'` is special
Augie Fackler <augie@google.com>
parents:
24200
diff
changeset
|
30 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should |
80c5b2666a96
extensions: document that `testedwith = 'internal'` is special
Augie Fackler <augie@google.com>
parents:
24200
diff
changeset
|
31 # be specifying the version(s) of Mercurial they are tested with, or |
80c5b2666a96
extensions: document that `testedwith = 'internal'` is special
Augie Fackler <augie@google.com>
parents:
24200
diff
changeset
|
32 # leave the attribute unspecified. |
29841
d5883fd055c6
extensions: change magic "shipped with hg" string
Augie Fackler <augie@google.com>
parents:
29123
diff
changeset
|
33 testedwith = 'ships-with-hg-core' |
14311
9bbac962f4dd
graphlog: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com>
parents:
14139
diff
changeset
|
34 |
9bbac962f4dd
graphlog: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com>
parents:
14139
diff
changeset
|
35 @command('glog', |
16432
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
36 [('f', 'follow', None, |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
37 _('follow changeset history, or file history across copies and renames')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
38 ('', 'follow-first', None, |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
39 _('only follow the first parent of merge changesets (DEPRECATED)')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
40 ('d', 'date', '', _('show revisions matching date spec'), _('DATE')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
41 ('C', 'copies', None, _('show copied files')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
42 ('k', 'keyword', [], |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
43 _('do case-insensitive search for a given text'), _('TEXT')), |
23091
8d43c6bb38c0
doc: change 'revision or range' to 'revision or revset'
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
21782
diff
changeset
|
44 ('r', 'rev', [], _('show the specified revision or revset'), _('REV')), |
16432
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
45 ('', 'removed', None, _('include revisions where files were removed')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
46 ('m', 'only-merges', None, _('show only merges (DEPRECATED)')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
47 ('u', 'user', [], _('revisions committed by user'), _('USER')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
48 ('', 'only-branch', [], |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
49 _('show only changesets within the given named branch (DEPRECATED)'), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
50 _('BRANCH')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
51 ('b', 'branch', [], |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
52 _('show changesets within the given named branch'), _('BRANCH')), |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
53 ('P', 'prune', [], |
365bb0fa73a4
graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu>
parents:
16431
diff
changeset
|
54 _('do not display revision or any of its ancestors'), _('REV')), |
32375
04baab18d60a
commands: move templates of common command options to cmdutil (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
55 ] + cmdutil.logopts + cmdutil.walkopts, |
21782
404eca1ce4f9
graphlog: define inferrepo in command decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents:
20118
diff
changeset
|
56 _('[OPTION]... [FILE]'), |
404eca1ce4f9
graphlog: define inferrepo in command decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents:
20118
diff
changeset
|
57 inferrepo=True) |
27149
2f804a38351e
graphlog: rename glog function
timeless <timeless@mozdev.org>
parents:
25186
diff
changeset
|
58 def glog(ui, repo, *pats, **opts): |
7325
f9985108d4e4
graphlog: split the actual DAG grapher out into a separate method
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
7324
diff
changeset
|
59 """show revision history alongside an ASCII revision graph |
f9985108d4e4
graphlog: split the actual DAG grapher out into a separate method
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
7324
diff
changeset
|
60 |
9259
19a4b8fd5c48
graphlog: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents:
9198
diff
changeset
|
61 Print a revision history alongside a revision graph drawn with |
19a4b8fd5c48
graphlog: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents:
9198
diff
changeset
|
62 ASCII characters. |
7325
f9985108d4e4
graphlog: split the actual DAG grapher out into a separate method
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
7324
diff
changeset
|
63 |
9259
19a4b8fd5c48
graphlog: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents:
9198
diff
changeset
|
64 Nodes printed as an @ character are parents of the working |
19a4b8fd5c48
graphlog: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents:
9198
diff
changeset
|
65 directory. |
27715
f93e7540db8c
graphlog: update help with replacement
timeless <timeless@mozdev.org>
parents:
27149
diff
changeset
|
66 |
f93e7540db8c
graphlog: update help with replacement
timeless <timeless@mozdev.org>
parents:
27149
diff
changeset
|
67 This is an alias to :hg:`log -G`. |
7325
f9985108d4e4
graphlog: split the actual DAG grapher out into a separate method
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
7324
diff
changeset
|
68 """ |
34997
0c9ba2ac60a8
py3: handle keyword arguments in hgext/graphlog.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32375
diff
changeset
|
69 opts[r'graph'] = True |
24200
8e1f1673aa9a
graphlog: do not bypass commands.log so that -fr works
Yuya Nishihara <yuya@tcha.org>
parents:
23091
diff
changeset
|
70 return commands.log(ui, repo, *pats, **opts) |