mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 06:47:41 +03:00
43f2ea5724
Summary: Previously hints are shown at the end of the command. If the command takes too long to run then the hints won't be shown. We want to add hints about (very) slow operations. So let's add an API for that. Reviewed By: DurhamG Differential Revision: D31819716 fbshipit-source-id: 584c08e7dfcd587d5ab481f1d1a9c0aecb44895b
76 lines
2.0 KiB
Perl
76 lines
2.0 KiB
Perl
`#chg-compatible
|
|
|
|
$ newext showhint << EOF
|
|
> from edenscm.mercurial import (
|
|
> cmdutil,
|
|
> hintutil,
|
|
> registrar,
|
|
> )
|
|
>
|
|
> cmdtable = {}
|
|
> command = registrar.command(cmdtable)
|
|
>
|
|
> hint = registrar.hint()
|
|
>
|
|
> @hint('next')
|
|
> def hintnext(a, b):
|
|
> return "use 'hg next' to go from %s to %s" % (a, b)
|
|
>
|
|
> @hint('export')
|
|
> def hintexport(a):
|
|
> return "use 'hg export %s' to show commit content" % (a,)
|
|
>
|
|
> @hint('slow')
|
|
> def hintslow(a):
|
|
> return "%r is slow - be patient" % (a,)
|
|
>
|
|
> @command('showhint', norepo=True)
|
|
> def showhint(ui, *args):
|
|
> hintutil.trigger('export', 'P')
|
|
> hintutil.triggershow(ui, 'slow', 'date(x)')
|
|
> hintutil.trigger('next', 'X', 'Y')
|
|
> hintutil.trigger('export', 'Q')
|
|
> EOF
|
|
|
|
$ hg showhint
|
|
hint[slow]: 'date(x)' is slow - be patient
|
|
hint[export]: use 'hg export P' to show commit content
|
|
hint[next]: use 'hg next' to go from X to Y
|
|
hint[hint-ack]: use 'hg hint --ack export next' to silence these hints
|
|
|
|
Test HGPLAIN=1 or HGPLAIN=hint silences all hints
|
|
|
|
$ HGPLAIN=1 hg showhint
|
|
$ HGPLAIN=hint hg showhint
|
|
|
|
Test silence configs
|
|
|
|
$ hg showhint --config hint.ack-export=True --config hint.ack-slow=True
|
|
hint[next]: use 'hg next' to go from X to Y
|
|
hint[hint-ack]: use 'hg hint --ack next' to silence these hints
|
|
$ hg showhint --config hint.ack=next
|
|
hint[slow]: 'date(x)' is slow - be patient
|
|
hint[export]: use 'hg export P' to show commit content
|
|
hint[hint-ack]: use 'hg hint --ack export' to silence these hints
|
|
$ hg showhint --config hint.ack=*
|
|
|
|
Test hint --ack command
|
|
|
|
$ HGRCPATH=$HGRCPATH:$HOME/.hgrc
|
|
$ hg hint --ack next hint-ack
|
|
hints about next, hint-ack are silenced
|
|
$ cat .hgrc
|
|
[hint]
|
|
ack = next hint-ack
|
|
|
|
$ hg showhint
|
|
hint[slow]: 'date(x)' is slow - be patient
|
|
hint[export]: use 'hg export P' to show commit content
|
|
|
|
$ hg hint --ack export slow -q
|
|
$ cat .hgrc
|
|
[hint]
|
|
ack = next hint-ack export slow
|
|
|
|
$ hg showhint
|