mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Move Bleve and Elastic code indexers to use a common cat-file --batch (#14781)
* Extract out the common cat-file batch calls Signed-off-by: Andrew Thornton <art27@cantab.net> * Move bleve and elastic indexers to use a common cat-file --batch when indexing Signed-off-by: Andrew Thornton <art27@cantab.net> * move catfilebatch to batch_reader and rename to batch_reader.go Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		| @@ -64,27 +64,8 @@ func FindLFSFile(repo *git.Repository, hash git.SHA1) ([]*LFSResult, error) { | ||||
|  | ||||
| 	// Next feed the commits in order into cat-file --batch, followed by their trees and sub trees as necessary. | ||||
| 	// so let's create a batch stdin and stdout | ||||
| 	batchStdinReader, batchStdinWriter := io.Pipe() | ||||
| 	batchStdoutReader, batchStdoutWriter := io.Pipe() | ||||
| 	defer func() { | ||||
| 		_ = batchStdinReader.Close() | ||||
| 		_ = batchStdinWriter.Close() | ||||
| 		_ = batchStdoutReader.Close() | ||||
| 		_ = batchStdoutWriter.Close() | ||||
| 	}() | ||||
|  | ||||
| 	go func() { | ||||
| 		stderr := strings.Builder{} | ||||
| 		err := git.NewCommand("cat-file", "--batch").RunInDirFullPipeline(repo.Path, batchStdoutWriter, &stderr, batchStdinReader) | ||||
| 		if err != nil { | ||||
| 			_ = revListWriter.CloseWithError(git.ConcatenateError(err, (&stderr).String())) | ||||
| 		} else { | ||||
| 			_ = revListWriter.Close() | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	// For simplicities sake we'll us a buffered reader to read from the cat-file --batch | ||||
| 	batchReader := bufio.NewReader(batchStdoutReader) | ||||
| 	batchStdinWriter, batchReader, cancel := git.CatFileBatch(repo.Path) | ||||
| 	defer cancel() | ||||
|  | ||||
| 	// We'll use a scanner for the revList because it's simpler than a bufio.Reader | ||||
| 	scan := bufio.NewScanner(revListReader) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user