HomePhabricator

rhg: add support for narrow clones and sparse checkouts

Authored by aalekseyev.

Description

rhg: add support for narrow clones and sparse checkouts

This adds a minimal support that can be implemented without parsing the narrowspec.
We can parse the narrowspec and add support for more operations later.

The reason we need so few code changes is as follows:

Most operations need no special treatment of sparse because
some of them only read dirstate (rhg files without -r),
which bakes in the filtering,
some of them only read store (rhg files -r, rhg cat),
and some of them read no data at all (rhg root, rhg debugrequirements).

status is the command that might care about sparse, so we just disable
rhg on it.

For narrow clones, rhg files clearly needs the narrowspec to work
correctly, so we fall back.
rhg cat seems to work consistently with hg cat if the file exists.
If the file is hidden by narrow spec, the error message is different and confusing, so
that's something that we should improve in follow-up patches.

Differential Revision: https://phab.mercurial-scm.org/D11764

Details

Committed
aalekseyevNov 16 2021, 6:53 AM
Differential Revision
D11764: rhg: add support for narrow clones and sparse checkouts
Parents
rHGf77e4daaf612: update: reformat the `commands.update.check` help
Branches
Unknown
Tags
Unknown