Attempt to work around patches missing "No newline at end of file" markers.

Review Request #14175 — Created Sept. 19, 2024 and submitted — Latest diff uploaded

Information

Review Board
release-7.x

Reviewers

Some old (but still widely in use) versions of GNU diff have a bug where
they may at times fail to generate a \ No newline at end of file
marker for files that lack a trailing newline. Modern GNU Patch does not
work around this case, and fails with an error.

We now attempt to work around this issue. If a patch fails to apply, we
begin to investigate the diff. If it lacks a trailing newline, and we
don't see this marker anywhere in the diff, we will attempt to add a
newline and patch again.

This is not always guaranteed to work. It's a best-effort attempt at
working around a problem with how the diff is generated. We never hit it
unless we've already failed to patch, though.

Unit tests pass.

Commits

Files