Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 17:41:51 +0200] rev 48089
rhg: fallback if the current command has any generic hook defined
We do not handle hooks yet.
Differential Revision: https://phab.mercurial-scm.org/D11380
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 17:41:08 +0200] rev 48088
rhg-cat: fallback in presence of a fileset
These are unsupported so far.
Differential Revision: https://phab.mercurial-scm.org/D11379
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 17:40:25 +0200] rev 48087
rhg-cat: fallback when detecting `.` or `..` path segments
We do not normalize paths correctly yet, so exclude the shortcuts.
Differential Revision: https://phab.mercurial-scm.org/D11378
Raphaël Gomès <rgomes@octobus.net> [Wed, 01 Sep 2021 16:13:25 +0200] rev 48086
rhg: add support for calling `rhg cat` without a revision
Turns out the necessary pieces were there already.
Like the Python implementation, we default to the first parent of the dirstate.
Differential Revision: https://phab.mercurial-scm.org/D11377
Raphaël Gomès <rgomes@octobus.net> [Thu, 30 Sep 2021 17:34:28 +0200] rev 48085
branching: merge with stable
Simon Sapin <simon.sapin@octobus.net> [Mon, 27 Sep 2021 13:52:49 +0200] rev 48084
dirstate: Remove the Rust abstraction DirstateMapMethods
This Rust trait used to exist in order to allow the DirstateMap class exposed
to Python to be backed by either of two implementations: one similar to the
Python implementation based on a "flat" `HashMap<HgPathBuf, DirstateEntry>`,
and the newer one based on a tree of nodes matching the directory structure
of tracked files. A boxed trait object was used with dynamic dispatch.
With the flat implementation removed and only the tree one remaining, this
abstraction is not useful anymore and the concrete type can be stored directly.
It remains that the trait was implemented separately for `DirstateMap<'_>`
(which takes a lifetime parameter) and `OwningDirstateMap` (whose job is to
wrap the former and hide the lifetime parameter), with the latter impl only
forwarding calls.
This changeset also removes this forwarding. Instead, the methods formerly of
the `DirstateMapMethods` trait are now inherent methods implemented for
`OwningDirstateMap` (where they will actually be used) but in the module that
defines `DirstateMap`. This unusual setup gives access to the private fields
of `DirstateMap` from those methods.
Differential Revision: https://phab.mercurial-scm.org/D11517