Mercurial > hg
changeset 14328:3c65cdcf3ba6 stable
simplemerge: do not allow binary files to abort an entire merge
When used as the default merge tool, or used as a --tool override,
the simplemerge script should not be allowed to raise a util.Abort
just because one of the files being merged is binary. Instead, return
1 and mark the file unresolved.
author | Steve Borho <steve@borho.org> |
---|---|
date | Fri, 13 May 2011 19:46:36 -0500 |
parents | 2a6ee654655e |
children | abaacdab38f6 afb2ed5b37a2 |
files | mercurial/simplemerge.py tests/test-simplemerge-cmd.t |
diffstat | 2 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/simplemerge.py Mon May 09 10:46:54 2011 +0200 +++ b/mercurial/simplemerge.py Fri May 13 19:46:36 2011 -0500 @@ -407,10 +407,10 @@ f.close() if util.binary(text): msg = _("%s looks like a binary file.") % filename + if not opts.get('quiet'): + ui.warn(_('warning: %s\n') % msg) if not opts.get('text'): raise util.Abort(msg) - elif not opts.get('quiet'): - ui.warn(_('warning: %s\n') % msg) return text name_a = local @@ -423,9 +423,12 @@ if labels: raise util.Abort(_("can only specify two labels.")) - localtext = readfile(local) - basetext = readfile(base) - othertext = readfile(other) + try: + localtext = readfile(local) + basetext = readfile(base) + othertext = readfile(other) + except util.Abort: + return 1 local = os.path.realpath(local) if not opts.get('print'):
--- a/tests/test-simplemerge-cmd.t Mon May 09 10:46:54 2011 +0200 +++ b/tests/test-simplemerge-cmd.t Fri May 13 19:46:36 2011 -0500 @@ -99,8 +99,8 @@ $ python -c "f = file('binary-local', 'w'); f.write('\x00'); f.close()" $ cat orig >> binary-local $ python simplemerge -p binary-local base other - abort: binary-local looks like a binary file. - [255] + warning: binary-local looks like a binary file. + [1] binary file --text