You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Diff created with java-diff-utils cannot be applied with git apply if file is shorter than context #119
/** * @param contextSize * How many lines of context around each changed line should be included.*/classDiffFactory(privatevalcontextSize:Int) {
companionobject {
privateconstvalLINE_SEPARATOR="\n"
}
/** * Creates a git-apply compatible diff.*/funcomputeDiff(
filename:String,
originalContent:String,
newContent:String
): String=UnifiedDiffUtils.generateUnifiedDiff(
"a/$filename", // a/ and b/ required for git-apply compatibility"b/$filename",
originalContent.split(LINE_SEPARATOR),
DiffUtils.diff(
originalContent, newContent,
NullDiffAlgorithmListener
),
contextSize
).joinToString(LINE_SEPARATOR)
}
With contextSize = 3 the following diff gets created:
(important: line with 1 space at the end - I've also added an empty newline to support git apply call from file instead of system in)
5. git apply fails
> git apply example.diff
error: patch failed: examples/unchain-variable-declaration.js:1
error: examples/unchain-variable-declaration.js: patch does not apply
Expected behavior
Git apply works with the following patch:
Activity
wumpz commentedon Apr 28, 2021
I created a test from your sources and I got the correct result (GenerateunifiedDiffTest.testWrongContextLength):
So I must assume, there is something different in your setup.
lgrammel commentedon Apr 29, 2021
Thanks for taking a look. I'll see if I can find out what is different in my setup.
fixes java-diff-utils#119