Skip to content

Unexpected line diffs when a code block is inserted after a previous difference #109

Description

@vsquared56

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:
image

Now, consider a similar addition, but with a simple change inside foo():

File3:

function foo() {
    bar();
    console.log("foo");
}

function bar() {
    console.log("bar");
}

image

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:
image

But tools like DiffChecker.com give output that is potentially more useful:
image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions