annotate contrib/tcsh_completion @ 32292:0ad0d26ff703

changelog: load pending file directly When changelogs are written, a copy of the index (or inline revlog) may be written to an 00changelog.i.a file to facilitate hooks and other processes having access to the pending data before it is finalized. The way it works today, the localrepo class loads the changelog like normal. Then, if it detects a pending transaction, it asks the changelog class to load a pending changelog. The changelog class looks for a 00changelog.i.a file. If it exists, it is loaded and internal data structures on the new revlog class are copied to the original instance. The existing mechanism is inefficient because it loads 2 revlog files. The index, node map, and chunk cache for 00changelog.i are thrown away and replaced by those for 00changelog.i.a. The existing mechanism is also brittle because it is a layering violation to access the data structures being accessed. For example, the code copies the "chunk cache" because for inline revlogs this cache contains the raw revision chunks and allows the original changelog/revlog instance to access revision data for these pending revisions. This whole behavior of course relies on the revlog constructor reading the entirety of an inline revlog into memory and caching it. That's why it is brittle. (I discovered all this as part of modifying behavior of the chunk cache.) This patch streamlines the loading of a pending 00changelog.i.a revlog by doing it directly in the changelog constructor if told to do so. When this code path is active, we no longer load the 00changelog.i file at all. The only negative outcome I see from this change is if loading 00changelog.i was somehow facilitating a role. But I can't imagine what that would be because we throw away its data (the index data structures are replaced and inline revision data is replaced via the chunk cache) and since 00changelog.i.a is a copy of 00changelog.i, file content should be identical, so there should be no meaninful file integrity checking at play. I think this was all just sub-optimal code.
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 13 May 2017 16:26:43 -0700
parents 2616325766e3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1156
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
1 #
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
2 # tcsh completion for Mercurial
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
3 #
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
4 # This file has been auto-generated by tcsh_completion_build.sh for
13515
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
5 # Mercurial Distributed SCM (version 1.7.5+157-8a220ae0b2ba)
1156
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
6 #
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
7 # Copyright (C) 2005 TK Soh.
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
8 #
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
9 # This is free software; you can redistribute it and/or modify it under
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
10 # the terms of the GNU General Public License as published by the Free
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
11 # Software Foundation; either version 2 of the License, or (at your
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1264
diff changeset
12 # option) any later version.
1156
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
13 #
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
14
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
15 complete hg \
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
16 'n/--cwd/d/' 'n/-R/d/' 'n/--repository/d/' \
1158
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
17 'C/-/( -R --repository \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
18 --cwd \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
19 -y --noninteractive \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
20 -q --quiet \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
21 -v --verbose \
7766
2b2548342265 Update tcsh completion scripts with new commands and for new help output.
Gilles Moris <gilles.moris@free.fr>
parents: 1308
diff changeset
22 --config \
1158
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
23 --debug \
1264
be4a14bfaa9c Generated new tcsh_completion with tcsh_completion_build.sh
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1158
diff changeset
24 --debugger \
7766
2b2548342265 Update tcsh completion scripts with new commands and for new help output.
Gilles Moris <gilles.moris@free.fr>
parents: 1308
diff changeset
25 --encoding \
2b2548342265 Update tcsh completion scripts with new commands and for new help output.
Gilles Moris <gilles.moris@free.fr>
parents: 1308
diff changeset
26 --encodingmode \
1158
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
27 --traceback \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
28 --time \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
29 --profile \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
30 --version \
4650ec7ef690 Regenerate tcsh_completion after bugfix in generator script
TK Soh <tksoh@freescale.com>
parents: 1156
diff changeset
31 -h --help)/' \
7766
2b2548342265 Update tcsh completion scripts with new commands and for new help output.
Gilles Moris <gilles.moris@free.fr>
parents: 1308
diff changeset
32 'p/1/(add addremove annotate blame archive \
13515
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
33 backout bisect bookmarks branch branches \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
34 bundle cat clone commit ci \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
35 copy cp debugancestor debugbuilddag debugcheckstate \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
36 debugcommands debugcomplete debugdag debugdata debugdate \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
37 debugfsinfo debugignore debugindex debugindexdot debuginstall \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
38 debugpushkey debugrebuildstate debugrename debugrevspec debugsetparents \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
39 debugstate debugsub debugwalk diff export \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
40 forget grep heads help identify \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
41 id import patch incoming in \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
42 init locate log history manifest \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
43 merge outgoing out parents paths \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
44 pull push recover remove rm \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
45 rename move mv resolve revert \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
46 rollback root serve showconfig debugconfig \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
47 status st summary sum tag \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
48 tags tip unbundle update up \
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 11445
diff changeset
49 checkout co verify version)/'
1156
1d5996d39c9d Add tcsh_completion to contrib
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
50