Show More
@@ -340,7 +340,7 b' def _checkcollision(repo, wmf, actions):' | |||||
340 | pmmf.discard(f) |
|
340 | pmmf.discard(f) | |
341 | pmmf.add(fd) |
|
341 | pmmf.add(fd) | |
342 | def mergeop(f, args): |
|
342 | def mergeop(f, args): | |
343 | f2, fd, move = args |
|
343 | f2, fa, fd, move = args | |
344 | if move: |
|
344 | if move: | |
345 | pmmf.discard(f) |
|
345 | pmmf.discard(f) | |
346 | pmmf.add(fd) |
|
346 | pmmf.add(fd) | |
@@ -468,7 +468,7 b' def manifestmerge(repo, wctx, p2, pa, br' | |||||
468 | elif nol and n1 == a: # local only changed 'x' |
|
468 | elif nol and n1 == a: # local only changed 'x' | |
469 | actions.append((f, "g", (fl1,), "remote is newer")) |
|
469 | actions.append((f, "g", (fl1,), "remote is newer")) | |
470 | else: # both changed something |
|
470 | else: # both changed something | |
471 | actions.append((f, "m", (f, f, False), "versions differ")) |
|
471 | actions.append((f, "m", (f, fa, f, False), "versions differ")) | |
472 | elif f in copied: # files we'll deal with on m2 side |
|
472 | elif f in copied: # files we'll deal with on m2 side | |
473 | pass |
|
473 | pass | |
474 | elif n1 and f in movewithdir: # directory rename |
|
474 | elif n1 and f in movewithdir: # directory rename | |
@@ -477,7 +477,7 b' def manifestmerge(repo, wctx, p2, pa, br' | |||||
477 | "remote renamed directory to " + f2)) |
|
477 | "remote renamed directory to " + f2)) | |
478 | elif n1 and f in copy: |
|
478 | elif n1 and f in copy: | |
479 | f2 = copy[f] |
|
479 | f2 = copy[f] | |
480 | actions.append((f, "m", (f2, f, False), |
|
480 | actions.append((f, "m", (f2, f2, f, False), | |
481 | "local copied/moved to " + f2)) |
|
481 | "local copied/moved to " + f2)) | |
482 | elif n1 and f in ma: # clean, a different, no remote |
|
482 | elif n1 and f in ma: # clean, a different, no remote | |
483 | if n1 != ma[f]: |
|
483 | if n1 != ma[f]: | |
@@ -496,10 +496,10 b' def manifestmerge(repo, wctx, p2, pa, br' | |||||
496 | elif n2 and f in copy: |
|
496 | elif n2 and f in copy: | |
497 | f2 = copy[f] |
|
497 | f2 = copy[f] | |
498 | if f2 in m2: |
|
498 | if f2 in m2: | |
499 | actions.append((f2, "m", (f, f, False), |
|
499 | actions.append((f2, "m", (f, f2, f, False), | |
500 | "remote copied to " + f)) |
|
500 | "remote copied to " + f)) | |
501 | else: |
|
501 | else: | |
502 | actions.append((f2, "m", (f, f, True), |
|
502 | actions.append((f2, "m", (f, f2, f, True), | |
503 | "remote moved to " + f)) |
|
503 | "remote moved to " + f)) | |
504 | elif n2 and f not in ma: |
|
504 | elif n2 and f not in ma: | |
505 | # local unknown, remote created: the logic is described by the |
|
505 | # local unknown, remote created: the logic is described by the | |
@@ -519,7 +519,8 b' def manifestmerge(repo, wctx, p2, pa, br' | |||||
519 | else: |
|
519 | else: | |
520 | different = _checkunknownfile(repo, wctx, p2, f) |
|
520 | different = _checkunknownfile(repo, wctx, p2, f) | |
521 | if force and branchmerge and different: |
|
521 | if force and branchmerge and different: | |
522 | actions.append((f, "m", (f, f, False), |
|
522 | # FIXME: This is wrong - f is not in ma ... | |
|
523 | actions.append((f, "m", (f, f, f, False), | |||
523 | "remote differs from untracked local")) |
|
524 | "remote differs from untracked local")) | |
524 | elif not force and different: |
|
525 | elif not force and different: | |
525 | aborts.append((f, "ud")) |
|
526 | aborts.append((f, "ud")) | |
@@ -617,7 +618,7 b' def applyupdates(repo, actions, wctx, mc' | |||||
617 | f, m, args, msg = a |
|
618 | f, m, args, msg = a | |
618 | repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m)) |
|
619 | repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m)) | |
619 | if m == "m": # merge |
|
620 | if m == "m": # merge | |
620 | f2, fd, move = args |
|
621 | f2, fa, fd, move = args | |
621 | if fd == '.hgsubstate': # merged internally |
|
622 | if fd == '.hgsubstate': # merged internally | |
622 | continue |
|
623 | continue | |
623 | repo.ui.debug(" preserving %s for resolve of %s\n" % (f, fd)) |
|
624 | repo.ui.debug(" preserving %s for resolve of %s\n" % (f, fd)) | |
@@ -628,9 +629,9 b' def applyupdates(repo, actions, wctx, mc' | |||||
628 | fca = fcl.p1() |
|
629 | fca = fcl.p1() | |
629 | else: |
|
630 | else: | |
630 | fca = repo.filectx(f, fileid=nullrev) |
|
631 | fca = repo.filectx(f, fileid=nullrev) | |
|
632 | elif fa in actx: | |||
|
633 | fca = actx[fa] | |||
631 | else: |
|
634 | else: | |
632 | fca = fcl.ancestor(fco, actx) |
|
|||
633 | if not fca: |
|
|||
634 | fca = repo.filectx(f, fileid=nullrev) |
|
635 | fca = repo.filectx(f, fileid=nullrev) | |
635 | ms.add(fcl, fco, fca, fd) |
|
636 | ms.add(fcl, fco, fca, fd) | |
636 | if f != fd and move: |
|
637 | if f != fd and move: | |
@@ -682,7 +683,7 b' def applyupdates(repo, actions, wctx, mc' | |||||
682 | f, m, args, msg = a |
|
683 | f, m, args, msg = a | |
683 | progress(_updating, z + i + 1, item=f, total=numupdates, unit=_files) |
|
684 | progress(_updating, z + i + 1, item=f, total=numupdates, unit=_files) | |
684 | if m == "m": # merge |
|
685 | if m == "m": # merge | |
685 | f2, fd, move = args |
|
686 | f2, fa, fd, move = args | |
686 | if fd == '.hgsubstate': # subrepo states need updating |
|
687 | if fd == '.hgsubstate': # subrepo states need updating | |
687 | subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), |
|
688 | subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), | |
688 | overwrite) |
|
689 | overwrite) | |
@@ -792,7 +793,7 b' def recordupdates(repo, actions, branchm' | |||||
792 | else: |
|
793 | else: | |
793 | repo.dirstate.normal(f) |
|
794 | repo.dirstate.normal(f) | |
794 | elif m == "m": # merge |
|
795 | elif m == "m": # merge | |
795 | f2, fd, move = args |
|
796 | f2, fa, fd, move = args | |
796 | if branchmerge: |
|
797 | if branchmerge: | |
797 | # We've done a branch merge, mark this file as merged |
|
798 | # We've done a branch merge, mark this file as merged | |
798 | # so that we properly record the merger later |
|
799 | # so that we properly record the merger later |
@@ -268,6 +268,7 b' h: l vs l, different' | |||||
268 | merging b |
|
268 | merging b | |
269 | warning: conflicts during merge. |
|
269 | warning: conflicts during merge. | |
270 | merging b incomplete! (edit conflicts, then use 'hg resolve --mark') |
|
270 | merging b incomplete! (edit conflicts, then use 'hg resolve --mark') | |
|
271 | warning: cannot merge flags for c | |||
271 | merging d |
|
272 | merging d | |
272 | warning: internal:merge cannot merge symlinks for d |
|
273 | warning: internal:merge cannot merge symlinks for d | |
273 | merging d incomplete! (edit conflicts, then use 'hg resolve --mark') |
|
274 | merging d incomplete! (edit conflicts, then use 'hg resolve --mark') | |
@@ -328,6 +329,7 b' h: l vs l, different' | |||||
328 | merging b |
|
329 | merging b | |
329 | warning: conflicts during merge. |
|
330 | warning: conflicts during merge. | |
330 | merging b incomplete! (edit conflicts, then use 'hg resolve --mark') |
|
331 | merging b incomplete! (edit conflicts, then use 'hg resolve --mark') | |
|
332 | warning: cannot merge flags for c | |||
331 | merging d |
|
333 | merging d | |
332 | warning: internal:merge cannot merge symlinks for d |
|
334 | warning: internal:merge cannot merge symlinks for d | |
333 | merging d incomplete! (edit conflicts, then use 'hg resolve --mark') |
|
335 | merging d incomplete! (edit conflicts, then use 'hg resolve --mark') | |
@@ -355,7 +357,7 b' h: l vs l, different' | |||||
355 | 2 |
|
357 | 2 | |
356 | >>>>>>> other |
|
358 | >>>>>>> other | |
357 | $ tellmeabout c |
|
359 | $ tellmeabout c | |
358 |
c is a |
|
360 | c is an executable file with content: | |
359 | x |
|
361 | x | |
360 | $ tellmeabout d |
|
362 | $ tellmeabout d | |
361 | d is an executable file with content: |
|
363 | d is an executable file with content: |
General Comments 0
You need to be logged in to leave comments.
Login now