diff --git a/modules/git/diff_test.go b/modules/git/diff_test.go index 8e618d354ad..4f124648af0 100644 --- a/modules/git/diff_test.go +++ b/modules/git/diff_test.go @@ -194,3 +194,15 @@ func TestParseDiffHunkString(t *testing.T) { assert.Equal(t, 2, rightLine) assert.Equal(t, 1, rightHunk) } + +func Test_GetAffectedHunksForTwoCommitsSpecialFile(t *testing.T) { + repoPath := "./tests/repos/repo4_commitsbetween" + hunks, err := GetAffectedHunksForTwoCommitsSpecialFile(t.Context(), repoPath, "fdc1b615bdcff0f0658b216df0c9209e5ecb7c78", "a78e5638b66ccfe7e1b4689d3d5684e42c97d7ca", "test.txt") + assert.NoError(t, err) + assert.Len(t, hunks, 1) + // @@ -1 +1 @@ + assert.Equal(t, int64(1), hunks[0].LeftLine) + assert.Equal(t, int64(1), hunks[0].LeftHunk) + assert.Equal(t, int64(1), hunks[0].RightLine) + assert.Equal(t, int64(1), hunks[0].RightHunk) +} diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index 9ccb13b5a4e..5c74d077fde 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -322,6 +322,9 @@ func (repo *Repository) CommitsBetween(lastCommitID, beforeCommitID string) ([]* return commits, nil } +// CommitIDsBetween returns a list that contains commit IDs between (beforeCommitID, afterCommitID]. +// If beforeCommitID is empty, it will return all commits before afterCommitID. +// If beforeCommitID is given, it will not be included in the result. func CommitIDsBetween(ctx context.Context, repoPath, beforeCommitID, afterCommitID string) ([]string, error) { var stdout []byte var err error