@@ -827,7 +827,10 @@ def calculateupdates(repo, wctx, mctx, a
# Prompt and create actions. TODO: Move this towards resolve phase.
for f, args, msg in actions['cd']:
- if repo.ui.promptchoice(
+ if f in ancestors[0] and wctx[f].data() == ancestors[0][f].data():
+ # local did change but ended up with same content
+ actions['r'].append((f, None, "prompt same"))
+ elif repo.ui.promptchoice(
_("local changed %s which remote deleted\n"
"use (c)hanged version or (d)elete?"
"$$ &Changed $$ &Delete") % f, 0):
@@ -838,7 +841,10 @@ def calculateupdates(repo, wctx, mctx, a
for f, args, msg in actions['dc']:
flags, = args
- if repo.ui.promptchoice(
+ if f in ancestors[0] and mctx[f].data() == ancestors[0][f].data():
+ # remote did change but ended up with same content
+ pass # don't get = keep local deleted
+ elif repo.ui.promptchoice(
_("remote changed %s which local deleted\n"
"use (c)hanged version or leave (d)eleted?"
"$$ &Changed $$ &Deleted") % f, 0) == 0:
@@ -262,8 +262,6 @@ Ancestor: normal Parent: normal-same P
$ hg up -Cqr normal-same
$ hg merge -r large
- local changed f which remote deleted
- use (c)hanged version or (d)elete? c
getting changed largefiles
1 largefiles updated, 0 removed
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -275,11 +273,9 @@ swap
$ hg up -Cqr large
$ hg merge -r normal-same
- remote changed f which local deleted
- use (c)hanged version or leave (d)eleted? c
getting changed largefiles
- 1 largefiles updated, 0 removed
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ 0 largefiles updated, 0 removed
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f
large
@@ -387,8 +383,6 @@ Ancestor: large Parent: large-same P
$ hg up -Cqr large-same
$ hg merge -r normal
- local changed .hglf/f which remote deleted
- use (c)hanged version or (d)elete? c
getting changed largefiles
0 largefiles updated, 0 removed
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -400,11 +394,7 @@ swap
$ hg up -Cqr normal
$ hg merge -r large-same
- remote changed .hglf/f which local deleted
- use (c)hanged version or leave (d)eleted? c
- getting changed largefiles
- 0 largefiles updated, 0 removed
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f
normal