586 raise error.Abort(_("untracked files in working directory differ " |
586 raise error.Abort(_("untracked files in working directory differ " |
587 "from files in requested revision")) |
587 "from files in requested revision")) |
588 |
588 |
589 for f, (m, args, msg) in actions.iteritems(): |
589 for f, (m, args, msg) in actions.iteritems(): |
590 if m == 'c': |
590 if m == 'c': |
591 actions[f] = ('g', args, msg) |
591 flags, = args |
|
592 actions[f] = ('g', (flags, False), msg) |
592 elif m == 'cm': |
593 elif m == 'cm': |
593 fl2, anc = args |
594 fl2, anc = args |
594 different = _checkunknownfile(repo, wctx, mctx, f) |
595 different = _checkunknownfile(repo, wctx, mctx, f) |
595 if different: |
596 if different: |
596 actions[f] = ('m', (f, f, None, False, anc), |
597 actions[f] = ('m', (f, f, None, False, anc), |
597 "remote differs from untracked local") |
598 "remote differs from untracked local") |
598 else: |
599 else: |
599 actions[f] = ('g', (fl2,), "remote created") |
600 actions[f] = ('g', (fl2, False), "remote created") |
600 |
601 |
601 def _forgetremoved(wctx, mctx, branchmerge): |
602 def _forgetremoved(wctx, mctx, branchmerge): |
602 """ |
603 """ |
603 Forget removed files |
604 Forget removed files |
604 |
605 |
746 actions[f] = ('k' , (), "remote unchanged") |
747 actions[f] = ('k' , (), "remote unchanged") |
747 elif n1 == a and fl1 == fla: # local unchanged - use remote |
748 elif n1 == a and fl1 == fla: # local unchanged - use remote |
748 if n1 == n2: # optimization: keep local content |
749 if n1 == n2: # optimization: keep local content |
749 actions[f] = ('e', (fl2,), "update permissions") |
750 actions[f] = ('e', (fl2,), "update permissions") |
750 else: |
751 else: |
751 actions[f] = ('g', (fl2,), "remote is newer") |
752 actions[f] = ('g', (fl2, False), "remote is newer") |
752 elif nol and n2 == a: # remote only changed 'x' |
753 elif nol and n2 == a: # remote only changed 'x' |
753 actions[f] = ('e', (fl2,), "update permissions") |
754 actions[f] = ('e', (fl2,), "update permissions") |
754 elif nol and n1 == a: # local only changed 'x' |
755 elif nol and n1 == a: # local only changed 'x' |
755 actions[f] = ('g', (fl1,), "remote is newer") |
756 actions[f] = ('g', (fl1, False), "remote is newer") |
756 else: # both changed something |
757 else: # both changed something |
757 actions[f] = ('m', (f, f, f, False, pa.node()), |
758 actions[f] = ('m', (f, f, f, False, pa.node()), |
758 "versions differ") |
759 "versions differ") |
759 elif n1: # file exists only on local side |
760 elif n1: # file exists only on local side |
760 if f in copied: |
761 if f in copied: |
1457 flags = p2[f2].flags() |
1458 flags = p2[f2].flags() |
1458 if repo.ui.promptchoice( |
1459 if repo.ui.promptchoice( |
1459 _("remote changed %s which local deleted\n" |
1460 _("remote changed %s which local deleted\n" |
1460 "use (c)hanged version or leave (d)eleted?" |
1461 "use (c)hanged version or leave (d)eleted?" |
1461 "$$ &Changed $$ &Deleted") % f, 0) == 0: |
1462 "$$ &Changed $$ &Deleted") % f, 0) == 0: |
1462 actions['g'].append((f, (flags,), "prompt recreating")) |
1463 actions['g'].append((f, (flags, False), "prompt recreating")) |
1463 |
1464 |
1464 # divergent renames |
1465 # divergent renames |
1465 for f, fl in sorted(diverge.iteritems()): |
1466 for f, fl in sorted(diverge.iteritems()): |
1466 repo.ui.warn(_("note: possible conflict - %s was renamed " |
1467 repo.ui.warn(_("note: possible conflict - %s was renamed " |
1467 "multiple times to:\n") % f) |
1468 "multiple times to:\n") % f) |