Assume Subversion "nonexistent" destination revisions are deleted files.

Review Request #11602 — Created May 11, 2021 and submitted — Latest diff uploaded

Information

Review Board
release-3.0.x

Reviewers

Subversion has a couple different ways it can represent deleted files,
and they're not always consistent. It's also changed throughout
Subversion development, meaning that our deleted file logic worked fine
on some versions, and less so on others, depending.

We weren't handling the case where a file was listed as deleted using a
destination revision of (nonexistent). We did handle this for the
source revision, and we handled Index: ... (deleted), but not this
version.

This change implements this support, checking for this revision
identifier and flagging the file as deleted. This only affects
newly-uploaded diffs.

Unit tests pass. Waiting on feedback from a user who reported the issue.

Changes between revision 1 and 2

orig
1
2

Commits

Summary ID Author
Assume Subversion "nonexistent" destination revisions are deleted files.
Subversion has a couple different ways it can represent deleted files, and they're not always consistent. It's also changed throughout Subversion development, meaning that our deleted file logic worked fine on some versions, and less so on others, depending. We weren't handling the case where a file was listed as deleted using a destination revision of `(nonexistent)`. We did handle this for the source revision, and we handled `Index: ... (deleted)`, but not this version. This change implements this support, checking for this revision identifier and flagging the file as deleted. This only affects newly-uploaded diffs.
2033ed13b129bfa64b65a09380c5d970bebb63c2 Christian Hammond
Assume Subversion "nonexistent" destination revisions are deleted files.
Subversion has a couple different ways it can represent deleted files, and they're not always consistent. It's also changed throughout Subversion development, meaning that our deleted file logic worked fine on some versions, and less so on others, depending. We weren't handling the case where a file was listed as deleted using a destination revision of `(nonexistent)`. We did handle this for the source revision, and we handled `Index: ... (deleted)`, but not this version. This change implements this support, checking for this revision identifier and flagging the file as deleted. This only affects newly-uploaded diffs.
a7ec33ae6a50d1d078ea33cad83ef3089c6d91a4 Christian Hammond
reviewboard/scmtools/tests/test_svn.py
Loading...