Add a line-ending preservation mode to apply_patch - #37757
Merged
copyberry[bot] merged 1 commit intoAug 10, 2026
Merged
Conversation
## Why Updating a file with `apply_patch` historically normalized its contents to LF, which can rewrite line endings outside the requested change. ## What changed - Add an opt-in `PreserveLineEndings` update mode and thread it through patch verification, application, and the standalone executable. Existing APIs keep the LF-normalizing mode by default. - Retain the original endings of untouched and context lines, including in mixed-ending files, and use the file's first line ending for inserted or replaced lines. - Track patch context separately from identical changed lines so preservation does not alter replacement ordering or matching. ## Testing Add coverage for CRLF, CR, mixed endings, trailing blank lines, repeated lines, EOF overlap rejection, and legacy LF normalization. GitOrigin-RevId: 085f0cbc57e0965aa62c6a2d0e80870424e762f5
copyberry
Bot
force-pushed
the
copyberry/codex-internal-to-codex-oss/085f0cbc57e0965aa62c6a2d0e80870424e762f5
branch
from
August 10, 2026 01:41
acd8b0b to
21aa552
Compare
copyberry
Bot
deleted the
copyberry/codex-internal-to-codex-oss/085f0cbc57e0965aa62c6a2d0e80870424e762f5
branch
August 10, 2026 01:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a line-ending preservation mode to
apply_patchWhy
Updating a file with
apply_patchhistorically normalized its contents to LF,which can rewrite line endings outside the requested change.
What changed
PreserveLineEndingsupdate mode and thread it through patchverification, application, and the standalone executable. Existing APIs keep
the LF-normalizing mode by default.
mixed-ending files, and use the file's first line ending for inserted or
replaced lines.
does not alter replacement ordering or matching.
Testing
Add coverage for CRLF, CR, mixed endings, trailing blank lines, repeated lines,
EOF overlap rejection, and legacy LF normalization.