Add SVN binary file patching.

Review Request #14717 — Created Nov. 29, 2025 and updated

Information

RBTools
master

Reviewers

This change adds support to the SVNPatcher for applying binary files
as part of changes. Things have been reorganized a little bit in order
to make it easier to deal with both empty files and binary files, which
appear similarly in the diff.

Additionally, several of our tests had index lines that did not start
with a /, which was inconsistent with real-world data. I've fixed
these up to match.

  • Ran unit tests.
  • Used rbt patch with a bunch of changes that did various file
    operations on binary files.
Summary ID
Add SVN binary file patching.
This change adds support to the `SVNPatcher` for applying binary files as part of changes. Things have been reorganized a little bit in order to make it easier to deal with both empty files and binary files, which appear similarly in the diff. Additionally, several of our tests had index lines that did not start with a `/`, which was inconsistent with real-world data. I've fixed these up to match. Testing Done: - Ran unit tests. - Used `rbt patch` with a bunch of changes that did various file operations on binary files.
xlmyyqprwnolxknqmzqskqkvpurszzwy
Description From Last Updated

continuation line over-indented for hanging indent Column: 29 Error code: E126

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (96 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (92 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (92 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (92 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (89 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot

line too long (84 > 79 characters) Column: 80 Error code: E501

reviewbotreviewbot
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

david
Review request changed
Commits:
Summary ID
Add SVN binary file patching.
This change adds support to the `SVNPatcher` for applying binary files as part of changes. Things have been reorganized a little bit in order to make it easier to deal with both empty files and binary files, which appear similarly in the diff. Additionally, several of our tests had index lines that did not start with a `/`, which was inconsistent with real-world data. I've fixed these up to match. Testing Done: - Ran unit tests. - Used `rbt patch` with a bunch of changes that did various file operations on binary files.
xlmyyqprwnolxknqmzqskqkvpurszzwy
Add SVN binary file patching.
This change adds support to the `SVNPatcher` for applying binary files as part of changes. Things have been reorganized a little bit in order to make it easier to deal with both empty files and binary files, which appear similarly in the diff. Additionally, several of our tests had index lines that did not start with a `/`, which was inconsistent with real-world data. I've fixed these up to match. Testing Done: - Ran unit tests. - Used `rbt patch` with a bunch of changes that did various file operations on binary files.
xlmyyqprwnolxknqmzqskqkvpurszzwy

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

david
david
Review request changed
Description:
   

This change adds support to the SVNPatcher for applying binary files

    as part of changes. Things have been reorganized a little bit in order
    to make it easier to deal with both empty files and binary files, which
    appear similarly in the diff.

   
   

Additionally, several of our tests had index lines that did not start

    with a /, which was inconsistent with real-world data. I've fixed
    these up to match.

-  
-  

Testing Done:

-   - Ran unit tests.
-   - Used rbt patch with a bunch of changes that did various file
-   operations on binary files.

Testing Done:
  +
  • Ran unit tests.
  +
  • Used rbt patch with a bunch of changes that did various file
    operations on binary files.