Fix string types in the Subversion backends.

Review Request #10534 — Created April 15, 2019 and submitted

Information

Review Board
release-4.0.x

Reviewers

We had a lot of legacy cruft involving string types in our Subversion
code (the backends in particular). Some of this was due to some
guesswork in string handling, and some due to just being legacy and
Subvertpy having changed over time.

Our Subvertpy code in particular had some old methods of coercing string
types (the B() wrapper), which stood out from the rest of our codebase
and wasn't very compatible with Python 3 (and could potentially cause
problems when encountering some Unicode characters). Subvertpy itself
these days is fairly flexible in terms of string types on all supported
Python versions, which means that some of the coercing work we were
doing wasn't even necessary.

For Subvertpy, we're no longer using B() wrapper, and we're not
worrying about string types for parameters that are flexible. For the
results of some operations, though, we're now converting to the correct
types.

PySVN was mostly fine, but there were some Python 2-isms that didn't
work in Python 3, causing crashes or tripping other string checks that
have recently been introduced. These have been updated to use/convert to
the right string types.

All Subversion unit tests pass on PySVN and Subvertpy on Python 2.7
and 3.7.

Summary ID
Fix string types in the Subversion backends.
We had a lot of legacy cruft involving string types in our Subversion code (the backends in particular). Some of this was due to some guesswork in string handling, and some due to just being legacy and Subvertpy having changed over time. Our Subvertpy code in particular had some old methods of coercing string types (the `B()` wrapper), which stood out from the rest of our codebase and wasn't very compatible with Python 3 (and could potentially cause problems when encountering some Unicode characters). Subvertpy itself these days is fairly flexible in terms of string types on all supported Python versions, which means that some of the coercing work we were doing wasn't even necessary. For Subvertpy, we're no longer using `B()` wrapper, and we're not worrying about string types for parameters that are flexible. For the results of some operations, though, we're now converting to the correct types. PySVN was mostly fine, but there were some Python 2-isms that didn't work in Python 3, causing crashes or tripping other string checks that have recently been introduced. These have been updated to use/convert to the right string types.
911754bbd4533b34e3fb70e89527b0e930ea6a96
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.0.x (e55f245)