logtoprocess: update commandfinish options arguments
d2c997b8001f changed the logtoprocess API with the effect of not exposing the
positional arguments to the logtoprocess scripts anymore.
We have some scripts that use the duration and return code of the
"commandfinish" event to monitor hg calls. Update the logging of the
"commandfinish" to expose those values as options argument, which will be
accessible as `OPT_RETURN_CODE` and `OPT_DURATION` in logtoprocess arguments.
The code has been formatted with Black.
Differential Revision: https://phab.mercurial-scm.org/D5282
$ cat >> $HGRCPATH << EOF
> [extensions]
> fastannotate=
> EOF
$ hg init repo
$ cd repo
$ for i in 0 1 2 3 4; do
> echo $i >> a
> echo $i >> b
> hg commit -A -m $i a b
> done
use the "debugbuildannotatecache" command to build annotate cache at rev 0
$ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=0
fastannotate: a: 1 new changesets in the main branch
fastannotate: b: 1 new changesets in the main branch
"debugbuildannotatecache" should work with broken cache (and other files would
be built without being affected). note: linelog being broken is only noticed
when we try to append to it.
$ echo 'CORRUPT!' >> .hg/fastannotate/default/a.m
$ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=1
fastannotate: a: rebuilding broken cache
fastannotate: a: 2 new changesets in the main branch
fastannotate: b: 1 new changesets in the main branch
$ echo 'CANNOT REUSE!' > .hg/fastannotate/default/a.l
$ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=2
fastannotate: a: rebuilding broken cache
fastannotate: a: 3 new changesets in the main branch
fastannotate: b: 1 new changesets in the main branch
$ rm .hg/fastannotate/default/a.m
$ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=3
fastannotate: a: rebuilding broken cache
fastannotate: a: 4 new changesets in the main branch
fastannotate: b: 1 new changesets in the main branch
$ rm .hg/fastannotate/default/a.l
$ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=3
$ hg debugbuildannotatecache --debug --config fastannotate.mainbranch=4
fastannotate: a: rebuilding broken cache
fastannotate: a: 5 new changesets in the main branch
fastannotate: b: 1 new changesets in the main branch
"fastannotate" should deal with file corruption as well
$ rm -rf .hg/fastannotate
$ hg fastannotate --debug -r 0 a
fastannotate: a: 1 new changesets in the main branch
0: 0
$ echo 'CORRUPT!' >> .hg/fastannotate/default/a.m
$ hg fastannotate --debug -r 0 a
fastannotate: a: cache broken and deleted
fastannotate: a: 1 new changesets in the main branch
0: 0
$ echo 'CORRUPT!' > .hg/fastannotate/default/a.l
$ hg fastannotate --debug -r 1 a
fastannotate: a: cache broken and deleted
fastannotate: a: 2 new changesets in the main branch
0: 0
1: 1
$ rm .hg/fastannotate/default/a.l
$ hg fastannotate --debug -r 1 a
fastannotate: a: using fast path (resolved fctx: True)
fastannotate: a: cache broken and deleted
fastannotate: a: 2 new changesets in the main branch
0: 0
1: 1
$ rm .hg/fastannotate/default/a.m
$ hg fastannotate --debug -r 2 a
fastannotate: a: cache broken and deleted
fastannotate: a: 3 new changesets in the main branch
0: 0
1: 1
2: 2