[PATCH 2 of 2] merge: make 'cd' and 'dc' actions store the same arguments as 'm'
Siddharth Agarwal
sid at less-broken.com
Sat Nov 14 00:42:00 CST 2015
On 11/13/15 14:27, Siddharth Agarwal wrote:
> # HG changeset patch
> # User Siddharth Agarwal <sid0 at fb.com>
> # Date 1447441617 28800
> # Fri Nov 13 11:06:57 2015 -0800
> # Node ID 2a584d6ca31922c5f89ddfbe10ee88f705e8d406
> # Parent 88a697eb28dfa94038ac89543cd40ee65b5ca00b
> merge: make 'cd' and 'dc' actions store the same arguments as 'm'
Spotted an issue with this series -- I'm going to resend shortly.
>
> We're going to treat these conflicts similarly to merge conflicts, and this
> change to the way we store things in memory makes future code a lot simpler.
>
> diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
> --- a/hgext/largefiles/overrides.py
> +++ b/hgext/largefiles/overrides.py
> @@ -481,6 +481,9 @@ def overridecalculateupdates(origfn, rep
> (lm, largs, lmsg) = actions.get(lfile, (None, None, None))
> (sm, sargs, smsg) = actions.get(standin, (None, None, None))
> if sm in ('g', 'dc') and lm != 'r':
> + if sm == 'dc':
> + f1, f2, fa, move, anc = sargs
> + sargs = (p2[f2].flags(),)
> # Case 1: normal file in the working copy, largefile in
> # the second parent
> usermsg = _('remote turned local normal file %s into a largefile\n'
> @@ -496,6 +499,9 @@ def overridecalculateupdates(origfn, rep
> else:
> actions[standin] = ('r', None, 'replaced by non-standin')
> elif lm in ('g', 'dc') and sm != 'r':
> + if lm == 'dc':
> + f1, f2, fa, move, anc = largs
> + largs = (p2[f2].flags(),)
> # Case 2: largefile in the working copy, normal file in
> # the second parent
> usermsg = _('remote turned local largefile %s into a normal file\n'
> diff --git a/mercurial/merge.py b/mercurial/merge.py
> --- a/mercurial/merge.py
> +++ b/mercurial/merge.py
> @@ -623,7 +623,8 @@ def manifestmerge(repo, wctx, p2, pa, br
> if acceptremote:
> actions[f] = ('r', None, "remote delete")
> else:
> - actions[f] = ('cd', None, "prompt changed/deleted")
> + actions[f] = ('cd', (f, f, f, False, pa.node()),
> + "prompt changed/deleted")
> elif n1[20:] == 'a':
> # This extra 'a' is added by working copy manifest to mark
> # the file as locally added. We should forget it instead of
> @@ -673,7 +674,8 @@ def manifestmerge(repo, wctx, p2, pa, br
> if acceptremote:
> actions[f] = ('c', (fl2,), "remote recreating")
> else:
> - actions[f] = ('dc', (fl2,), "prompt deleted/changed")
> + actions[f] = ('dc', (f, f, f, False, pa.node()),
> + "prompt deleted/changed")
>
> return actions, diverge, renamedelete
>
> @@ -1264,7 +1266,8 @@ def update(repo, node, branchmerge, forc
> actions['a'].append((f, None, "prompt keep"))
>
> for f, args, msg in sorted(actions['dc']):
> - flags, = args
> + f1, f2, fa, move, anc = args
> + flags = p2[f2].flags()
> if repo.ui.promptchoice(
> _("remote changed %s which local deleted\n"
> "use (c)hanged version or leave (d)eleted?"
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list