Unifying sparse and narrow "profiles"
Durham Goode
durham at fb.com
Tue May 16 19:02:41 EDT 2017
On 5/16/17 12:02 PM, Augie Fackler wrote:
> On Tue, May 16, 2017 at 09:22:21AM -0700, Durham Goode wrote:
>> On 5/15/17 2:53 PM, Augie Fackler wrote:
>>>
>>>> On May 9, 2017, at 15:17, Gregory Szorc <gregory.szorc at gmail.com> wrote:
>>>>
>>>> How about this for a concrete proposal (with intent on landing some bits of sparse in 4.3):
>>>>
>>>> 1) Drop a copy of Facebook's sparse.py into hgext/ along with minimally-modified tests
>>>> 2) Mark extension as experimental and not subject to any BC guarantees
>>>> 3) Rename "sparse" command to "debugsparse" until we have a proper UX bikeshed
>>>> 4) Start moving code from extension into core where appropriate. This will help flush out what considerations core needs to make for maintaining sparse checkouts
>>>> 5) Attempt to stabilize the sparse profiles file format so daring consumers can use sparse checkouts in 4.3 without major BC concerns from file formats
>>>> 6) Bikeshed and paint the shed
>>>> 7) Repeat #6
>>>> 8) (a few releases later) drop experimental labeling and/or move sparse checkout into core as a feature that is enabled by default (presumably this is gated on a "sign-off" from narrow clone)
>>>
>>> This works for me, assuming it's okay for the Facebook end of things. I don't want to hurt them while we're getting this sorted.
>>
>> Sounds good. My only request would be that if any breaking changes are made,
>> please include Facebook in the discussion so we can plan ahead for the
>> breakage (since this is all already in production here).
>
> That sounds eminently reasonable. Do you have any usability gripes
> from users today that we should put in the backlog of things to
> change?
Most people don't have any issues, since most people don't run any
sparse commands (since a profile is set up for them when they clone).
Certain power users do wish it was easier to pull in more changes. For
instance, it might be nice if instead of running 'cd path/to/foo' a user
could run 'hg cd path/to/foo' and it would material that directory and
take you there. That's somewhat orthogonal to the existing ui and
implementation though.
Better man page style documentation around sparse profiles could be
useful as well.
More information about the Mercurial-devel
mailing list