[PATCH 2 of 2] convert: execute merges in-memory (issue5076)

Tony Tung tonytung at instagram.com
Tue Feb 23 17:17:18 EST 2016



> On Feb 23, 2016, at 2:03 PM, Sean Farley <sean at farley.io> wrote:
> 
> 
> Tony Tung <tonytung at instagram.com> writes:
> 
>> On Feb 23, 2016, at 1:45 PM, Sean Farley <sean at farley.io> wrote:
>> 
>>>>> On Feb 23, 2016, at 1:13 PM, Sean Farley <sean at farley.io> wrote:
>>>>> 
>>>>> 
>>>>> Augie Fackler <raf at durin42.com> writes:
>>>>> 
>>>>>>> On Tue, Feb 23, 2016 at 12:14:00AM -0800, Tony Tung wrote:
>>>>>>> # HG changeset patch
>>>>>>> # User Tony Tung <tonytung at merly.org>
>>>>>>> # Date 1456215137 28800
>>>>>>> #      Tue Feb 23 00:12:17 2016 -0800
>>>>>>> # Node ID b7f61d7438ba1aed06afa1a53a2b5fda8bdc225f
>>>>>>> # Parent  cbc605f28b61cc469e21186982d0569bf94f7d2a
>>>>>>> convert: execute merges in-memory (issue5076)
>>>>>> 
>>>>>> I think this makes sense. Sean, you've done in-memory merge stuff,
>>>>>> does this look sensible at least for convert to you?
>>>>> 
>>>>> My spider senses did go off with the subject line but I don't really see
>>>>> what is changing here. There's a change in the method signature and a
>>>>> check for it later but everything else with the merge machinery
>>>>> (workingctx and its interaction with wwrite) remains untouched. Perhaps
>>>>> the 'hg convert' code path takes a different route? I'm guessing Tony is
>>>>> referring to merging the manifest (and not the other machinery I
>>>>> mentioned)?
>>>>> 
>>>>> If so, then it seems this 'inmemoryonly' argument might be used (perhaps
>>>>> by me) later for a first attempt of a pure in-memory merge.
>>>> 
>>>> The hg convert path will not check for dirty subrepos because the working copy remains untouched throughout the entire conversion process.
>>> 
>>> Ok, so this has nothing to do with an actual in-memory merge. Just
>>> converting without touching the working directory.
>> 
>> I assume this is in reference to a mercurial-specific concept, because otherwise I am very confused. :)
> 
> Your description is:
> 
> +    inmemoryonly = merge is happening in memory only; wctx does not
> +                   represent an actual working directory.  an example
> +                   of this would be repository conversion (convert extension).
> 
> But that only works for the convert extension. Issuing a 'hg merge' will
> call merge.update which will apply all the repo.wwrite (writing to the
> working directory).

Right, so inmemoryonly shouldn't be set from 'hg merge'.

(I have a feeling we're talking past each other; feel free to ping me off the mailing list if you feel the same.)

Thanks,
Tony


More information about the Mercurial-devel mailing list