context.status: wipe deleted/unknown/ignored fields when reversed

It makes no sense to request reverse status (i.e. changes from the
working copy to its parent) and then look at the deleted, unknown or
ignored fields. If you do, you would get the result from the forward
status (changes from parent to the working copy). Instead of giving a
nonsensical answer to a nonsensical question, it seems a little saner
to return empty lists. It might be best if we could prevent the caller
accessing these lists, but it's doubtful it's worth the trouble.

--HG--
extra : rebase_source : fb649ea5349fdc692c6e13b0341ba6f429bdf70f
context.status: make _dirstatestatus() return an status tuple

Letting _dirstatestatus() return an scmutil.status instance also means
that _buildstatus() will always return such an instance, so we can
remove the conversion from the call sites.

--HG--
extra : rebase_source : 90ed6a1aca273e7c5b04c58525e38f04d435dbaa
context.status: avoid de- and reconstructing status tuple

We can just modify the status tuple we got from dirstate.status()
instead of deconstructing it and constructing a new instance, thereby
simplifying the code a little.

--HG--
extra : rebase_source : c8fb4884e0921b6983dca0fd1c381be078929a7b
context.status: pass status tuple into _buildstatus

By passing a status tuple (instead of the current list), we can access
the status fields by name and make it a little more readable.

--HG--
extra : rebase_source : 5c2930f99bdff8e4863cc04dae563971047e5eaf
manifest: add matches() method

Move the code in context._manifestmatches() into a new
manifest.matches(). It's a natural place for the code to live and it
allows other callers to easily use it. It should also make it easier
to optimize the new method in alternative implementations of the
manifest (same reasoning as with manifest.diff()).

--HG--
extra : rebase_source : 2e14abb3ed74950f76e0fc96f4a7c961aad1d2b4
revlog: cache chain info after calculating it for a rev (issue4452)

This dumb cache works surprisingly well: on a repository with typical delta
chains ~50k in length, unbundling a linear series of 5000 revisions (changelogs
and manifests only) went from 60 seconds to 3.

--HG--
extra : amend_source : 7ce8475f5d28cdbb32714c6388c479b36c0549ba
largefiles: update comments to refer to the right overridden method

This cleans up leftovers from b228ad1f79d7 (largefiles: override
calculateupdates instead of manifestmerge, 2014-03-02).