@@ -16,10 +16,10 @@ import (
16
16
"code.gitea.io/gitea/modules/analyze"
17
17
"code.gitea.io/gitea/modules/charset"
18
18
"code.gitea.io/gitea/modules/git"
19
+ "code.gitea.io/gitea/modules/gitrepo"
19
20
"code.gitea.io/gitea/modules/indexer/code/internal"
20
21
indexer_internal "code.gitea.io/gitea/modules/indexer/internal"
21
22
inner_bleve "code.gitea.io/gitea/modules/indexer/internal/bleve"
22
- "code.gitea.io/gitea/modules/log"
23
23
"code.gitea.io/gitea/modules/setting"
24
24
"code.gitea.io/gitea/modules/timeutil"
25
25
"code.gitea.io/gitea/modules/typesniffer"
@@ -189,21 +189,20 @@ func (b *Indexer) addDelete(filename string, repo *repo_model.Repository, batch
189
189
func (b * Indexer ) Index (ctx context.Context , repo * repo_model.Repository , sha string , changes * internal.RepoChanges ) error {
190
190
batch := inner_bleve .NewFlushingBatch (b .inner .Indexer , maxBatchSize )
191
191
if len (changes .Updates ) > 0 {
192
- // Now because of some insanity with git cat-file not immediately failing if not run in a valid git directory we need to run git rev-parse first!
193
- if err := git .EnsureValidGitRepository (ctx , repo .RepoPath ()); err != nil {
194
- log .Error ("Unable to open git repo: %s for %-v: %v" , repo .RepoPath (), repo , err )
192
+ r , err := gitrepo .OpenRepository (ctx , repo )
193
+ if err != nil {
195
194
return err
196
195
}
197
-
198
- batchWriter , batchReader , cancel := git . CatFileBatch (ctx , repo . RepoPath () )
199
- defer cancel ()
196
+ defer r . Close ()
197
+ gitBatch := r . NewBatch (ctx )
198
+ defer gitBatch . Close ()
200
199
201
200
for _ , update := range changes .Updates {
202
- if err := b .addUpdate (ctx , batchWriter , batchReader , sha , update , repo , batch ); err != nil {
201
+ if err := b .addUpdate (ctx , gitBatch . Writer , gitBatch . Reader , sha , update , repo , batch ); err != nil {
203
202
return err
204
203
}
205
204
}
206
- cancel ()
205
+ gitBatch . Close ()
207
206
}
208
207
for _ , filename := range changes .RemovedFilenames {
209
208
if err := b .addDelete (filename , repo , batch ); err != nil {
0 commit comments