Fix up a variety of unicode/bytes issues with SVN.
Review Request #9627 — Created Feb. 12, 2018 and submitted
The SVN client was handling a variety of things using the wrong string
types, most notably filenames. In Python 3, filenames are expected to be
treated asstr
internally, and then serialized/deserialized using the
filesystem encoding (theoretically this is also the case in Python 2,
but the implicit casting makes it easy to be sloppy). This change fixes
those up so that we're at least sucessfully running the tests.This also incidentally fixes bug 4547, which involves using
Popen.communicate()
instead ofPopen.wait()
.
Ran unit tests on Python 2.7 and 3.6.
Description | From | Last Updated |
---|---|---|
Maybe worth doing this at the module level, sicne we need it a few times? |
chipx86 | |
Feels like this might be more readable as: return (diff_line.split(b'\n')[0].decode(fs_encoding), b'\n') |
chipx86 | |
For Python, object is probably fine, but if we don't have an explicit type in a Returns, we can leave … |
chipx86 | |
Can be six.PY3. |
chipx86 | |
E501 line too long (80 > 79 characters) |
reviewbot |
-
-
I'm confused about this, and feel like it's something I'm likely going to hit. What's the reason for the explicit ending index?
-
-
Feels like this might be more readable as:
return (diff_line.split(b'\n')[0].decode(fs_encoding), b'\n')
-
-
For Python,
object
is probably fine, but if we don't have an explicit type in aReturns
, we can leave off the type. That will leave off the type portion of the docs in the field, showing only the description. -