comparison mercurial/merge.py @ 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 0bd17a4bed88
children fcf66193b186
comparison
equal deleted inserted replaced
15893:eb6867b98223 15894:44fa047cef57
88 else: 88 else:
89 foldf = lambda fn: fn 89 foldf = lambda fn: fn
90 folded = {} 90 folded = {}
91 for fn in mctx: 91 for fn in mctx:
92 folded[foldf(fn)] = fn 92 folded[foldf(fn)] = fn
93
94 error = False
93 for fn in wctx.unknown(): 95 for fn in wctx.unknown():
94 f = foldf(fn) 96 f = foldf(fn)
95 if f in folded and mctx[folded[f]].cmp(wctx[f]): 97 if f in folded and mctx[folded[f]].cmp(wctx[f]):
96 raise util.Abort(_("untracked file in working directory differs" 98 error = True
97 " from file in requested revision: '%s'") % fn) 99 wctx._repo.ui.warn(_("%s: untracked file differs\n") % fn)
100 if error:
101 raise util.Abort(_("untracked files in working directory differ "
102 "from files in requested revision"))
98 103
99 def _checkcollision(mctx, wctx): 104 def _checkcollision(mctx, wctx):
100 "check for case folding collisions in the destination context" 105 "check for case folding collisions in the destination context"
101 folded = {} 106 folded = {}
102 for fn in mctx: 107 for fn in mctx: