update: don't translate the abort message twice stable
authorJavi Merino <cibervicho@gmail.com>
Wed, 07 Mar 2012 23:21:11 +0000
branchstable
changeset 16230 d4d35fd0889d
parent 16228 5b41d5ad52bf
child 16231 ce292f1379ba
update: don't translate the abort message twice The string representation of util.Abort() is translated when merge.update() raises the exception. For languages with characters out of the valid ascii range, if we feed them again to i18n.gettext() mercurial dies with: [...] File "/home/javi/src/mercurial/mercurial/hg-mpm/mercurial/commands.py", line 4287, in postincoming ui.warn(_("not updating: %s\n" % str(inst))) File "/home/javi/src/mercurial/mercurial/hg-mpm/mercurial/i18n.py", line 42, in gettext u = u'\n\n'.join([p and t.ugettext(p) or '' for p in paragraphs]) File "/usr/lib/python2.7/gettext.py", line 404, in ugettext return unicode(message) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 14: ordinal not in range(128) To reproduce this error, just try to pull a changeset that crosses branches with LANG=ru_RU.UTF-8
mercurial/commands.py
--- a/mercurial/commands.py	Sun Mar 04 17:12:12 2012 -0600
+++ b/mercurial/commands.py	Wed Mar 07 23:21:11 2012 +0000
@@ -4269,7 +4269,7 @@
         try:
             ret = hg.update(repo, checkout)
         except util.Abort, inst:
-            ui.warn(_("not updating: %s\n" % str(inst)))
+            ui.warn(_("not updating: %s\n") % str(inst))
             return 0
         if not ret and not checkout:
             if bookmarks.update(repo, [movemarkfrom], repo['.'].node()):