mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01:00 
			
		
		
		
	Reduce calls to git cat-file -s (#14682)
* Reduce calls to git cat-file -s There are multiple places where there are repeated calls to git cat-file -s due to the blobs not being created with their size. Through judicious use of git ls-tree -l and slight adjustments to the indexer code we can avoid a lot of these calls. * simplify by always expecting the long format * Also always set the sized field and tell the indexer the update is sized
This commit is contained in:
		| @@ -179,14 +179,20 @@ func (b *BleveIndexer) addUpdate(commitSha string, update fileUpdate, repo *mode | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	stdout, err := git.NewCommand("cat-file", "-s", update.BlobSha). | ||||
| 		RunInDir(repo.RepoPath()) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	size := update.Size | ||||
|  | ||||
| 	if !update.Sized { | ||||
| 		stdout, err := git.NewCommand("cat-file", "-s", update.BlobSha). | ||||
| 			RunInDir(repo.RepoPath()) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		if size, err = strconv.ParseInt(strings.TrimSpace(stdout), 10, 64); err != nil { | ||||
| 			return fmt.Errorf("Misformatted git cat-file output: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| 	if size, err := strconv.Atoi(strings.TrimSpace(stdout)); err != nil { | ||||
| 		return fmt.Errorf("Misformatted git cat-file output: %v", err) | ||||
| 	} else if int64(size) > setting.Indexer.MaxIndexerFileSize { | ||||
|  | ||||
| 	if size > setting.Indexer.MaxIndexerFileSize { | ||||
| 		return b.addDelete(update.Filename, repo, batch) | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user