merge: improve error messages for path conflicts during update

Differential Revision: https://phab.mercurial-scm.org/D782
This commit is contained in:
Mark Thomas 2017-10-02 14:05:30 -07:00
parent 710343cbad
commit 08fafa25e1
4 changed files with 15 additions and 5 deletions

View File

@ -741,13 +741,23 @@ def _checkunknownfiles(repo, wctx, mctx, force, actions, mergeforce):
actions[f] = ('g', (fl2, True), "remote created")
for f in sorted(abortconflicts):
repo.ui.warn(_("%s: untracked file differs\n") % f)
warn = repo.ui.warn
if f in pathconflicts:
if repo.wvfs.isfileorlink(f):
warn(_("%s: untracked file conflicts with directory\n") % f)
else:
warn(_("%s: untracked directory conflicts with file\n") % f)
else:
warn(_("%s: untracked file differs\n") % f)
if abortconflicts:
raise error.Abort(_("untracked files in working directory "
"differ from files in requested revision"))
for f in sorted(warnconflicts):
repo.ui.warn(_("%s: replacing untracked file\n") % f)
if repo.wvfs.isfileorlink(f):
repo.ui.warn(_("%s: replacing untracked file\n") % f)
else:
repo.ui.warn(_("%s: replacing untracked files in directory\n") % f)
for f, (m, args, msg) in actions.iteritems():
if m == 'c':

View File

@ -30,7 +30,7 @@ of the files in a commit we're updating to
$ mkdir b && touch b/nonempty
$ hg up
b: untracked file differs
b: untracked directory conflicts with file
abort: untracked files in working directory differ from files in requested revision
[255]
$ hg ci

View File

@ -37,7 +37,7 @@ Basic update - local directory conflicts with remote file
$ mkdir a
$ echo 3 > a/b
$ hg up file
a: untracked file differs
a: untracked directory conflicts with file
abort: untracked files in working directory differ from files in requested revision
[255]
$ hg up --clean file

View File

@ -50,7 +50,7 @@ make sure that this does not erase untracked data
$ hg st
? name/file
$ hg up 1
name: untracked file differs
name: untracked directory conflicts with file
abort: untracked files in working directory differ from files in requested revision
[255]
$ cd ..