diff --git a/modules/git/fetch_test.go b/modules/git/fetch_test.go index 95a1fa387d..b7ead10d4a 100644 --- a/modules/git/fetch_test.go +++ b/modules/git/fetch_test.go @@ -26,7 +26,7 @@ func TestFetch(t *testing.T) { fetchedCommitID, err := repo.Fetch(otherRepoPath, "refs/heads/master") require.NoError(t, err) - assert.Equal(t, "95d3505f2db273e40be79f84416051ae85e9ea0d", fetchedCommitID) + assert.Equal(t, "5684d0c8cfdfb17fcd59101826efc9ff54b80df4", fetchedCommitID) c, err := repo.getCommit(MustIDFromString(fetchedCommitID)) require.NoError(t, err) diff --git a/modules/git/grep_test.go b/modules/git/grep_test.go index 83ddb766af..5666a425f4 100644 --- a/modules/git/grep_test.go +++ b/modules/git/grep_test.go @@ -65,7 +65,7 @@ func TestGrepSearch(t *testing.T) { return } - res, err = GrepSearch(t.Context(), repo, "world", GrepOptions{MatchesPerFile: 1}) + res, err = GrepSearch(t.Context(), repo, "world", GrepOptions{RefName: "95d3505f2db273e40be79f84416051ae85e9ea0d", MatchesPerFile: 1}) require.NoError(t, err) assert.Equal(t, []*GrepResult{ { diff --git a/modules/git/repo_language_stats.go b/modules/git/repo_language_stats.go index ee4beb2f87..2832c4f572 100644 --- a/modules/git/repo_language_stats.go +++ b/modules/git/repo_language_stats.go @@ -168,11 +168,21 @@ func (repo *Repository) GetLanguageStats(commitID string) (map[string]int64, err } } - if isFalse(isDetectable) || isTrue(isVendored) || isTrue(isDocumentation) || - (!isFalse(isVendored) && analyze.IsVendor(f.Name())) || - enry.IsDotFile(f.Name()) || - enry.IsConfiguration(f.Name()) || - (!isFalse(isDocumentation) && enry.IsDocumentation(f.Name())) { + // Don't skip this file if it is explicitly set to be detectable. + // Skip this file if one of the following conditions holds: + // 1. Explicitly set to not be detectable. + // 2. Explicitly set that it is vendored. + // 3. Explicitly set that it is documentation. + // 4. Is not explicitly set to not be vendored and is by heuristic considered to be vendored. + // 5. It is considered to be a dot file. + // 6. It is considered to be a configuration file. + // 7. Is not explicitly set to not be documentation and is by heuristic considered to be documentation. + if !isTrue(isDetectable) && + (isFalse(isDetectable) || isTrue(isVendored) || isTrue(isDocumentation) || + (!isFalse(isVendored) && analyze.IsVendor(f.Name())) || + enry.IsDotFile(f.Name()) || + enry.IsConfiguration(f.Name()) || + (!isFalse(isDocumentation) && enry.IsDocumentation(f.Name()))) { continue } diff --git a/modules/git/repo_language_stats_test.go b/modules/git/repo_language_stats_test.go index e3d8ba1f69..2bc57b56c5 100644 --- a/modules/git/repo_language_stats_test.go +++ b/modules/git/repo_language_stats_test.go @@ -34,6 +34,16 @@ func TestRepository_GetLanguageStats(t *testing.T) { "Python": 67, "Java": 112, }, stats) + + stats, err = gitRepo.GetLanguageStats("5684d0c8cfdfb17fcd59101826efc9ff54b80df4") + require.NoError(t, err) + + assert.Equal(t, map[string]int64{ + "Cobra": 67, + "Python": 67, + "Markdown": 15, + "Java": 112, + }, stats) } func TestMergeLanguageStats(t *testing.T) { diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.idx b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.idx deleted file mode 100644 index 186136cb12..0000000000 Binary files a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.idx and /dev/null differ diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.pack b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.pack deleted file mode 100644 index 046061c688..0000000000 Binary files a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.pack and /dev/null differ diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.rev b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.rev deleted file mode 100644 index 7d8c6f3562..0000000000 Binary files a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-371b1f6c24df14da4898b22c00ff8fb55303ac76.rev and /dev/null differ diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.idx b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.idx new file mode 100644 index 0000000000..80e1ee36b5 Binary files /dev/null and b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.idx differ diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.pack b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.pack new file mode 100644 index 0000000000..94b6852051 Binary files /dev/null and b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.pack differ diff --git a/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.rev b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.rev new file mode 100644 index 0000000000..c2e2e3aeae Binary files /dev/null and b/modules/git/tests/repos/language_stats_repo/objects/pack/pack-7cd0100ad5c382a7e8e1bacada4b66b927f29b72.rev differ diff --git a/modules/git/tests/repos/language_stats_repo/packed-refs b/modules/git/tests/repos/language_stats_repo/packed-refs index 63e01583a4..b046027fce 100644 --- a/modules/git/tests/repos/language_stats_repo/packed-refs +++ b/modules/git/tests/repos/language_stats_repo/packed-refs @@ -1,2 +1,2 @@ # pack-refs with: peeled fully-peeled sorted -95d3505f2db273e40be79f84416051ae85e9ea0d refs/heads/master +5684d0c8cfdfb17fcd59101826efc9ff54b80df4 refs/heads/master diff --git a/tests/integration/linguist_test.go b/tests/integration/linguist_test.go index efeaaabb98..06ff1bd22f 100644 --- a/tests/integration/linguist_test.go +++ b/tests/integration/linguist_test.go @@ -156,8 +156,8 @@ func TestLinguistSupport(t *testing.T) { langs := getFreshLanguageStats(t, repo, sha) assert.Len(t, langs, 2) - assert.Equal(t, "C", langs[0].Language) - assert.Equal(t, "Markdown", langs[1].Language) + assert.Equal(t, "Markdown", langs[0].Language) + assert.Equal(t, "C", langs[1].Language) }) // 4. Marking foo.c as documentation