From: guillep2k Date: Fri, 2 Aug 2019 15:14:50 +0000 (-0300) Subject: Include "executable" files in the index, as they are not necessarily binary (#7718) X-Git-Tag: v1.10.0-rc1~308 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3566d2c860b0ad3ab7d6d5fb1490eb9a5b5f5974;p=gitea.git Include "executable" files in the index, as they are not necessarily binary (#7718) --- diff --git a/models/repo_indexer.go b/models/repo_indexer.go index 83383807a7..3a41e0525a 100644 --- a/models/repo_indexer.go +++ b/models/repo_indexer.go @@ -232,7 +232,7 @@ func addDelete(filename string, repo *Repository, batch rupture.FlushingBatch) e } func isIndexable(entry *git.TreeEntry) bool { - return entry.IsRegular() + return entry.IsRegular() || entry.IsExecutable() } // parseGitLsTreeOutput parses the output of a `git ls-tree -r --full-name` command diff --git a/modules/git/tree_entry.go b/modules/git/tree_entry.go index 6019e34487..4e18cc8ead 100644 --- a/modules/git/tree_entry.go +++ b/modules/git/tree_entry.go @@ -108,6 +108,11 @@ func (te *TreeEntry) IsRegular() bool { return te.gogitTreeEntry.Mode == filemode.Regular } +// IsExecutable if the entry is an executable file (not necessarily binary) +func (te *TreeEntry) IsExecutable() bool { + return te.gogitTreeEntry.Mode == filemode.Executable +} + // Blob returns the blob object the entry func (te *TreeEntry) Blob() *Blob { encodedObj, err := te.ptree.repo.gogitRepo.Storer.EncodedObject(plumbing.AnyObject, te.gogitTreeEntry.Hash)