Lazy load object format with command line and don't do it in OpenRepository (#29712)

Most time, when invoking `git.OpenRepository`, `objectFormat` will not
be used, so it's a waste to invoke commandline to get the object format.
This PR make it a lazy operation, only invoke that when necessary.
This commit is contained in:
Lunny Xiao 2024-03-12 12:21:27 +08:00 committed by GitHub
parent 7f856d5d74
commit e84e5db6de
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 72 additions and 31 deletions

View file

@ -246,7 +246,12 @@ func (repo *Repository) CommitsByFileAndRange(opts CommitsByFileAndRangeOptions)
}
}()
len := repo.objectFormat.FullLength()
objectFormat, err := repo.GetObjectFormat()
if err != nil {
return nil, err
}
len := objectFormat.FullLength()
commits := []*Commit{}
shaline := make([]byte, len+1)
for {