Mercurial > hg
annotate contrib/tcsh_completion @ 24992:7df090c9c9fe
localrepo: use changelog.hasnode instead of self.__contains__
Before this patch, releasing the store lock implies the actions below, when
the transaction is aborted:
1. "commithook()" scheduled in "localrepository.commit()" is invoked
2. "changectx.__init__()" is invoked via "self.__contains__()"
3. specified ID is examined against "repo.dirstate.p1()"
4. validation function is invoked in "dirstate.p1()"
In subsequent patches, "dirstate.invalidate()" invocations for
discarding changes are replaced with "dirstateguard", but discarding
changes by "dirstateguard" is executed after releasing the store lock:
resources are acquired in "wlock => dirstateguard => store lock" order,
and are released in reverse order.
This may cause that "dirstate.p1()" still refers to the changeset to be
rolled-back at (4) above: pushing multiple patches by "hg qpush" is
a typical case.
When releasing the store lock, such changesets are:
- not contained in "repo.changelog", if it is reloaded from
".hg/00changelog.i", as that file was already truncated by
"transaction.abort()"
- still contained in it, otherwise
(this "dirty read" problem is discussed in "Transaction Plan"
http://mercurial.selenic.com/wiki/TransactionPlan)
Validation function shows "unknown working parent" warning in the
former case, but reloading "repo.changelog" depends on the timestamp
of ".hg/00changelog.i". This causes occasional test failures.
In the case of scheduled "commithook()", it just wants to examine
whether "node ID" of committed changeset is still valid or not. Other
examinations implied in "changectx.__init__()" are meaningless.
To avoid showing the "unknown working parent" warning irregularly, this
patch uses "changelog.hasnode()" instead of "node in self" to examine
existence of committed changeset.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 07 May 2015 12:07:10 +0900 |
parents | 2616325766e3 |
children |
rev | line source |
---|---|
1156 | 1 # |
2 # tcsh completion for Mercurial | |
3 # | |
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 | 6 # |
7 # Copyright (C) 2005 TK Soh. | |
8 # | |
9 # This is free software; you can redistribute it and/or modify it under | |
10 # the terms of the GNU General Public License as published by the Free | |
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 | 13 # |
14 | |
15 complete hg \ | |
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 | 50 |