diff --git a/hgext/convert/common.py b/hgext/convert/common.py --- a/hgext/convert/common.py +++ b/hgext/convert/common.py @@ -2,7 +2,7 @@ import base64, errno import os import cPickle as pickle -from mercurial import util +from mercurial import util, strutil from mercurial.i18n import _ def encodeargs(args): @@ -334,7 +334,7 @@ class mapfile(dict): raise return for line in fp: - key, value = line[:-1].split(' ', 1) + key, value = strutil.rsplit(line[:-1], ' ', 1) if key not in self: self.order.append(key) super(mapfile, self).__setitem__(key, value) diff --git a/mercurial/strutil.py b/mercurial/strutil.py --- a/mercurial/strutil.py +++ b/mercurial/strutil.py @@ -32,3 +32,10 @@ def rfindall(haystack, needle, start=0, break yield c end = c - 1 + +def rsplit(s, sep=None, maxsplit=-1): + try: + return s.rsplit(sep, maxsplit) + except AttributeError: + return [chunk[::-1] for chunk in + s[::-1].split(sep, maxsplit)[::-1]]