Fix up a variety of unicode/bytes issues with SVN.

Review Request #9627 - Created Feb. 12, 2018 and submitted

David Trowbridge

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 as str 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 of Popen.wait().

Ran unit tests on Python 2.7 and 3.6.

  • 0
  • 0
  • 5
  • 0
  • 5
Description From Last Updated
Christian Hammond
  2. rbtools/clients/ (Diff revision 1)

    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?

    1. Pulling a single index out of bytes returns an int, not a bytes.

  3. rbtools/clients/ (Diff revision 1)

    Maybe worth doing this at the module level, sicne we need it a few times?

  4. rbtools/clients/ (Diff revision 1)

    Feels like this might be more readable as:

    return (diff_line.split(b'\n')[0].decode(fs_encoding),
  5. rbtools/utils/ (Diff revision 1)

    Oh man thank you.

  6. rbtools/utils/ (Diff revision 1)

    For Python, object is probably fine, but if we don't have an explicit type in a Returns, we can leave off the type. That will leave off the type portion of the docs in the field, showing only the description.

  7. rbtools/utils/ (Diff revision 1)

    Can be six.PY3.

David Trowbridge
Review request changed




Revision 2 (+229 -206)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.


David Trowbridge
Christian Hammond
  1. Ship It!
David Trowbridge
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to master (f158f41)