]> source.dussan.org Git - gitea.git/commitdiff
Skip non-regular files (e.g. submodules) on repo indexing (#7711)
authorguillep2k <github.com@mailfilter.com.ar>
Fri, 2 Aug 2019 06:57:53 +0000 (03:57 -0300)
committerzeripath <art27@cantab.net>
Fri, 2 Aug 2019 06:57:53 +0000 (07:57 +0100)
models/repo_indexer.go

index 140ec66c0355ce461b52a7d8919ea4d22003f88d..83383807a79285bab8504c6d104eb23972353ee4 100644 (file)
@@ -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