[PATCH 2 of 6 V2] context: remove unreliable accessor methods from committablectx
FUJIWARA Katsunori
foozy at lares.dti.ne.jp
Wed Dec 31 03:29:49 CST 2014
At Wed, 31 Dec 2014 17:58:07 +0900,
FUJIWARA Katsunori wrote:
>
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1420016143 -32400
> # Wed Dec 31 17:55:43 2014 +0900
> # Node ID 096d94e1da4c704dbda74d9da247f04dad3f3541
> # Parent bce1ac4b56fe44996029885129e69dd8f803c7f7
> context: remove unreliable accessor methods from committablectx
>
> There are two caching routes for (propertycache-ed) "_status" below in
> committablectx:
>
> - invoking "status()":
>
> "dirstate.status()" is invoked, and the result of it is cached
> into "_status". In this case, any of "listignored", "listclean"
> and "listunknown" may be True.
>
> - accessing "_status" directly before "status()":
>
> Own "status()" is invoked, but all of "listignored", "listclean"
> and "listunknown" arguments are False, in this case.
>
> "ignored"/"clean"/"unknown" accessor methods of "committablectx" use
> corresponded fields of "_status", but these fields aren't reliable,
> because these fields are empty when:
>
> - "_status" method is executed before accessors, or
> - "status()" is executed with "list*=False" before accessors
>
> In addition to it, these accessors aren't used in the recent Mercurial
> implementation. At least, removing them doesn't cause any test
> failures.
To confirm "not used in the recent Mercurial implementation", I also
checked that there is no code path using them of workingctx in output
of "grep" for '\.ignored', '\.clean' and '\.unknown' patterns (not
just remove-and-test :-))
> diff --git a/mercurial/context.py b/mercurial/context.py
> --- a/mercurial/context.py
> +++ b/mercurial/context.py
> @@ -1112,12 +1112,6 @@
> return self._status.removed
> def deleted(self):
> return self._status.deleted
> - def unknown(self):
> - return self._status.unknown
> - def ignored(self):
> - return self._status.ignored
> - def clean(self):
> - return self._status.clean
> def branch(self):
> return encoding.tolocal(self._extra['branch'])
> def closesbranch(self):
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
----------------------------------------------------------------------
[FUJIWARA Katsunori] foozy at lares.dti.ne.jp
More information about the Mercurial-devel
mailing list