Unexpected line diffs when a code block is inserted after a previous difference
vsquared56 opened this issue · 0 comments
vsquared56 commented
Hi, thanks for this project! I noticed the following issue which may come up when, for example, entire code blocks are inserted.
Consider these two simple .js files:
File1:
function foo() {
console.log("foo");
}
File2:
function foo() {
console.log("foo");
}
function bar() {
console.log("bar");
}
Here, the line-level diff is expected, it's clear that all of bar()
was inserted, along with its end brace:
Now, consider a similar addition, but with a simple change inside foo()
:
File3:
function foo() {
bar();
console.log("foo");
}
function bar() {
console.log("bar");
}
Comparing File1
with File3
shows the change begins at the end brace of foo()
, and it's not immediately clear that a complete function was added.
Worth noting that this matches the behavior of GNU diff:
But tools like DiffChecker.com give output that is potentially more useful: