summaryrefslogtreecommitdiffstats
path: root/models/repo_indexer.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo_indexer.go')
-rw-r--r--models/repo_indexer.go18
1 files changed, 13 insertions, 5 deletions
diff --git a/models/repo_indexer.go b/models/repo_indexer.go
index 140ec66c03..83383807a7 100644
--- a/models/repo_indexer.go
+++ b/models/repo_indexer.go
@@ -231,20 +231,28 @@ func addDelete(filename string, repo *Repository, batch rupture.FlushingBatch) e
return indexerUpdate.AddToFlushingBatch(batch)
}
+func isIndexable(entry *git.TreeEntry) bool {
+ return entry.IsRegular()
+}
+
// parseGitLsTreeOutput parses the output of a `git ls-tree -r --full-name` command
func parseGitLsTreeOutput(stdout []byte) ([]fileUpdate, error) {
entries, err := git.ParseTreeEntries(stdout)
if err != nil {
return nil, err
}
+ var idxCount = 0
updates := make([]fileUpdate, len(entries))
- for i, entry := range entries {
- updates[i] = fileUpdate{
- Filename: entry.Name(),
- BlobSha: entry.ID.String(),
+ for _, entry := range entries {
+ if isIndexable(entry) {
+ updates[idxCount] = fileUpdate{
+ Filename: entry.Name(),
+ BlobSha: entry.ID.String(),
+ }
+ idxCount++
}
}
- return updates, nil
+ return updates[:idxCount], nil
}
// genesisChanges get changes to add repo to the indexer for the first time