basectx: add subrev method to return the rev of a subrepo given a subpath

This will be used in an upcoming patch to simplify the status method by
eliminating an if block.

--HG--
extra : rebase_source : a8f414ab075496d3f206668dc5466fcfb73c7274
committablectx: add subrev method to return None

This allows a future patch to use object oriented style to remove an if
statement in the status method.

--HG--
extra : rebase_source : 579c2fbcbfb608723af6419819148bae3c1487fd
localrepo: use new subrev method of context.py

With the machinery in place, we use context.subrev instead of testing for a
workingctx directly. This allows more flexibility for later patches that will
add memctx to the mix.

--HG--
extra : rebase_source : 8946f4053a433bb504ed49da4daf825a74bd6d20
basectx: preserve loading the cached manifest in _prestatus

This is just a copy from localrepo.status and is a small step to removing that
method entirely. The prestatus hook is only called for changectx's, thereby
ensuring that the same behavior is guaranteed.

--HG--
extra : rebase_source : 202bf8e73f7cc360961767231af4e47020f9adcf
workingctx: add note about super._prestatus calling manifest

--HG--
extra : rebase_source : 0bf0cb09e83368115f05c012d0a5ac09e60868fc
localrepo: remove cache code now handled by _prestatus

This patch removes the last of the 'working' variable that was sprinkled
throughout localrepo.status which paves the way for future patches to use the
object oriented design of contexts to handle calculating the status.

--HG--
extra : rebase_source : a997fbc186d19edfc4a107fd854c87a712d84ccb
committablectx: simplify caching the status

Previously, workingctx had custom variables for the unknown, ignored, and clean
list of files of status. These then got moved to committablectx and, after the
refactoring of localrepo.status, are no longer needed. We, therefore, simplify
the whole mess.

As a bonus, we are able to remove the need for having 'assert'.

--HG--
extra : rebase_source : cfe8126cce1bc15c3713f8fa9b369b1155df5357
committablectx: cache _status in _poststatus

A future patch will remove the old workingctx.status which caches the status of
the working directory, therefore we now cache this status in the poststatus
hook of committablectx.

--HG--
extra : rebase_source : 021db3e980cff51bf66e7ea728cfe84a56130484
basectx: copy localrepo.status method

Now that all the pieces are in place, we copy the status method from
localrepo. In the next few patches, we will remove the old implementation.

--HG--
extra : rebase_source : 7b2c4ff3d083053a0533fdce91d100ecec958dcd
workingctx: have status method call super instead of customized code.

The old code is unneeded now that basectx has the ability to calculate the
status between two context objects.

Now, we use the objected oriented pattern called 'super'.

--HG--
extra : rebase_source : 4d7c0629178876bd666e084ea29e06b2d2930889
localrepo: replace status method with a shim

The path of the righteous man is beset on all sides by the inequities of the
selfish and the tyranny of evil men. Blessed is he, who in the name of charity
and good will, shepherds the weak through the valley of darkness, for he is
truly Mercurial's keeper and the finder of robust methods. And I will strike
down upon thee with great vengeance and furious anger those who would attempt
to poison and destroy Mercurial's codebase. And you will know my name is the
Lord when I lay my vengeance upon thee.

--HG--
extra : rebase_source : 553e004d2f31b36b108262a8899e32ffda28b3d3