[PATCH 2 of 2 stable] merge: fix crash on criss cross merge with dir move and delete (issue5020)

Mads Kiilerich mads at kiilerich.com
Wed Feb 1 01:15:57 UTC 2017


On 01/31/2017 03:49 PM, Yuya Nishihara wrote:
>
>> @@ -1029,7 +1032,19 @@ def calculateupdates(repo, wctx, mctx, a
>>               repo.ui.warn(_(' %s: ambiguous merge - picked %s action\n') %
>>                            (f, m))
>>               actions[f] = l[0]
>> +            if m == 'dm':
>> +                dms.append(f)
>>               continue
>> +        # Work around 'dm' that can cause multiple actions for the same file
>> +        for f in dms:
>> +            dm, (f0, flags), msg = actions[f]
>> +            assert dm == 'dm', dm
>> +            m, args, msg = actions[f0]
> I was a bit worried whether actions[f0] always exist, but that seemed
> unnecessary concern.

I agree it doesn't seem to be a valid concern but I can't give a 
convincing proof. I thus sent  patch to make it more safe, just incase 
the concern should be valid.

/Mads


More information about the Mercurial-devel mailing list