• 
      

    Further improve SVN path normalization and fix test regressions.

    Review Request #11042 — Created June 11, 2020 and submitted

    Information

    Review Board
    release-3.0.x

    Reviewers

    My previous change for SVN path normalization didn't actually work as
    well as I had thought. It was tested in the CI environment that
    originally unveiled the problems we had with quoting behavior, but those
    tests were performed against a svn+ssh:// URL rather than the
    file:// URL that the patch was ultimately written against.

    It turns out that these two types of URLs have different restrictions. A
    file:// URL cannot use non-printable characters (character codes 0
    through 31), even if escaped, whereas other URLs can.

    This change updates our tests to check against both. We now check
    character codes 32+ for file:// URLs and 0+ for others. We also
    validate that non-printable character codes aren't provided in a file
    path, catching errors before it hits Subversion.

    Unit tests pass on Python 2.7 and 3.x (when applied to the release-4.0.x
    branch).

    Unit tests also pass with this patch in the CI environment.

    Summary ID
    Further improve SVN path normalization and fix test regressions.
    My previous change for SVN path normalization didn't actually work as well as I had thought. It was tested in the CI environment that originally unveiled the problems we had with quoting behavior, but those tests were performed against a `svn+ssh://` URL rather than the `file://` URL that the patch was ultimately written against. It turns out that these two types of URLs have different restrictions. A `file://` URL cannot use non-printable characters (character codes 0 through 31), even if escaped, whereas other URLs can. This change updates our tests to check against both. We now check character codes 32+ for `file://` URLs and 0+ for others. We also validate that non-printable character codes aren't provided in a file path, catching errors before it hits Subversion.
    b3a7f08892ea042a90fae91c857c133aa11653e8
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-3.0.x (3287e03)