Submitter | Siddharth Agarwal |
---|---|
Date | Nov. 13, 2015, 10:27 p.m. |
Message ID | <2a584d6ca31922c5f89d.1447453630@dev666.prn1.facebook.com> |
Download | mbox | patch |
Permalink | /patch/11398/ |
State | Superseded |
Headers | show |
Comments
On 11/13/15 14:27, Siddharth Agarwal wrote: > # HG changeset patch > # User Siddharth Agarwal <sid0@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@selenic.com > https://selenic.com/mailman/listinfo/mercurial-devel
Patch
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?"