diff: preserve shared suffixes for prefixed lines - #9916
Closed
subotac wants to merge 1 commit into
Closed
Conversation
A multi-line word diff can fail to find an anchor for a repeated line in a materialized conflict. The inline renderer then receives the full left and right lines as changed even when one differs only by a marker prefix. Recognize that two-hunk prefix-only case while rendering color-words output. Compare line contents without their endings, style only the inserted or removed prefix, and leave the shared suffix unstyled. This keeps the correction local to presentation without changing the general diff matching heuristics. Add a CLI regression for the repeated conflict lines and document the fix. Fixes jj-vcs#9914
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Contributor
|
This should probably be handled within the diff logic. The |
Author
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Alternative to #9915. This takes a narrower approach by keeping the correction in the color-words renderer instead of changing the general diff matching algorithm.
When an inline diff line consists of one removed and one added hunk, and one side differs only by a prefix, only that prefix is styled as changed. The shared suffix remains unstyled.
Fixes #9914.
Checklist
CHANGELOG.mdhow it works, how it's organized), including any code drafted by an LLM.