Mercurial > hg
changeset 15894:44fa047cef57
merge: report all files in _checkunknown
When doing hg up, if there is a file conflict with untracked files,
currently only the first such conflict is reported. With this patch,
all of them are listed.
With this patch error message is now reported as
a: untracked file differs
b: untracked file differs
abort: untracked files in working directory conflict with files in
requested revision
instead of
abort: untracked file in working directory differs from file in
requested revision: 'a'
This is a follow up to an old attempt to do this here:
http://selenic.com/pipermail/mercurial-devel/2011-August/033625.html
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Wed, 11 Jan 2012 15:53:42 -0500 |
parents | eb6867b98223 |
children | 933b9ff73750 |
files | mercurial/merge.py tests/test-casefolding.t tests/test-merge1.t |
diffstat | 3 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Fri Jan 13 22:16:01 2012 +0100 +++ b/mercurial/merge.py Wed Jan 11 15:53:42 2012 -0500 @@ -90,11 +90,16 @@ folded = {} for fn in mctx: folded[foldf(fn)] = fn + + error = False for fn in wctx.unknown(): f = foldf(fn) if f in folded and mctx[folded[f]].cmp(wctx[f]): - raise util.Abort(_("untracked file in working directory differs" - " from file in requested revision: '%s'") % fn) + error = True + wctx._repo.ui.warn(_("%s: untracked file differs\n") % fn) + if error: + raise util.Abort(_("untracked files in working directory differ " + "from files in requested revision")) def _checkcollision(mctx, wctx): "check for case folding collisions in the destination context"
--- a/tests/test-casefolding.t Fri Jan 13 22:16:01 2012 +0100 +++ b/tests/test-casefolding.t Wed Jan 11 15:53:42 2012 -0500 @@ -66,7 +66,8 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo gold > a $ hg up - abort: untracked file in working directory differs from file in requested revision: 'a' + a: untracked file differs + abort: untracked files in working directory differ from files in requested revision [255] $ cat a gold
--- a/tests/test-merge1.t Fri Jan 13 22:16:01 2012 +0100 +++ b/tests/test-merge1.t Wed Jan 11 15:53:42 2012 -0500 @@ -66,7 +66,8 @@ $ echo This is file b2 > b merge should fail $ hg merge 1 - abort: untracked file in working directory differs from file in requested revision: 'b' + b: untracked file differs + abort: untracked files in working directory differ from files in requested revision [255] merge of b expected $ hg merge -f 1