# HG changeset patch # User Augie Fackler # Date 1504156751 14400 # Node ID dee572a4e30b4dbe4758728ef25cadbccdbefc5f # Parent 4e28e01f57da1c73fb22ca2a4a36e5986b325335 subvertpy: ensure paths are really always bytes diff --git a/hgsubversion/svnwrap/subvertpy_wrapper.py b/hgsubversion/svnwrap/subvertpy_wrapper.py --- a/hgsubversion/svnwrap/subvertpy_wrapper.py +++ b/hgsubversion/svnwrap/subvertpy_wrapper.py @@ -102,6 +102,12 @@ def prompt_callback(callback): subvertpy.NODE_FILE: 'f', } +_unitype = type(u'') +def _forceutf8(s): + if isinstance(s, _unitype): + return s.encode('utf-8') + return s + class PathAdapter(object): __slots__ = ('action', 'copyfrom_path', 'copyfrom_rev') @@ -360,9 +366,9 @@ class SubversionRepo(object): props.get(properties.PROP_REVISION_AUTHOR), props.get(properties.PROP_REVISION_LOG), props.get(properties.PROP_REVISION_DATE), - dict([(k, PathAdapter(*v)) + dict([(_forceutf8(k), PathAdapter(*v)) for k, v in paths.iteritems()]), - strip_path=self.subdir) + strip_path=_forceutf8(self.subdir)) revisions.append(r) # we only access revisions in a FIFO manner revisions = collections.deque()