Skip to content

Commit 1ad2ef5

Browse files
authored
Merge pull request #276 from vmarkovtsev/master
Fix checking the language of empty files
2 parents 8ec8477 + f46d8ba commit 1ad2ef5

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

internal/plumbing/tree_diff.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ func (treediff *TreeDiff) checkLanguage(name string, blobHash plumbing.Hash) (bo
278278
}
279279
buffer := make([]byte, 1024)
280280
n, err := reader.Read(buffer)
281-
if err != nil {
281+
if err != nil && (blob.Size != 0 || err != io.EOF) {
282282
return false, err
283283
}
284284
if n < len(buffer) {

internal/plumbing/tree_diff_test.go

+18-3
Original file line numberDiff line numberDiff line change
@@ -263,11 +263,16 @@ func TestTreeDiffFork(t *testing.T) {
263263

264264
func TestTreeDiffCheckLanguage(t *testing.T) {
265265
td := fixtureTreeDiff()
266-
td.Languages["Go"] = true
267266
lang, err := td.checkLanguage(
268267
"version.go", plumbing.NewHash("975f35a1412b8ae79b5ba2558f71f41e707fd5a9"))
269268
assert.NoError(t, err)
270269
assert.True(t, lang)
270+
td.Languages["go"] = true
271+
delete(td.Languages, allLanguages)
272+
lang, err = td.checkLanguage(
273+
"version.go", plumbing.NewHash("975f35a1412b8ae79b5ba2558f71f41e707fd5a9"))
274+
assert.NoError(t, err)
275+
assert.True(t, lang)
271276
}
272277

273278
func TestTreeDiffConsumeEnryFilter(t *testing.T) {
@@ -282,10 +287,20 @@ func TestTreeDiffConsumeEnryFilter(t *testing.T) {
282287

283288
newDiffs := td.filterDiffs(diffs)
284289
assert.Len(t, newDiffs, 2)
285-
td.Configure(map[string]interface{}{
290+
assert.NoError(t, td.Configure(map[string]interface{}{
286291
ConfigTreeDiffEnableBlacklist: true,
287292
ConfigTreeDiffBlacklistedPrefixes: []string{"whatever"},
288-
})
293+
}))
289294
newDiffs = td.filterDiffs(diffs)
290295
assert.Len(t, newDiffs, 0)
291296
}
297+
298+
func TestTreeDiffCheckLanguageEmpty(t *testing.T) {
299+
td := fixtureTreeDiff()
300+
td.Languages["python"] = true
301+
delete(td.Languages, allLanguages)
302+
lang, err := td.checkLanguage(
303+
"__init__.py", plumbing.NewHash("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"))
304+
assert.NoError(t, err)
305+
assert.True(t, lang)
306+
}

0 commit comments

Comments
 (0)