aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/covermerger
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-08-28 11:54:59 +0200
committerTaras Madan <tarasmadan@google.com>2024-08-29 13:21:19 +0000
commite46dcff2767435630f9f28e4e5ea141309798801 (patch)
tree1c62decf65a6fdf1829b2f4b33fbb9ea8e3b1cf9 /pkg/covermerger
parentaf983df1f68f6c49fc740287927618a30ce3e8a8 (diff)
pkg/covermerger: optimize checkouts
Every commit checkout takes >3 seconds. Let's optimize this operation to save on large merges.
Diffstat (limited to 'pkg/covermerger')
-rw-r--r--pkg/covermerger/provider_monorepo.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/pkg/covermerger/provider_monorepo.go b/pkg/covermerger/provider_monorepo.go
index 4f908606f..379c8c138 100644
--- a/pkg/covermerger/provider_monorepo.go
+++ b/pkg/covermerger/provider_monorepo.go
@@ -94,6 +94,15 @@ func (mr *monoRepo) cloneCommits(rbcs []RepoCommit) {
if mr.repoCommitPresent(rbc) {
continue
}
+ commitExistsInRepo, err := mr.repo.CommitExists(rbc.Commit)
+ if err != nil {
+ log.Logf(0, "can't check CommitExists: %s", err.Error())
+ }
+ if commitExistsInRepo {
+ log.Logf(0, "commit %s exists in local repo, no need to clone", rbc.Commit)
+ mr.repoCommits[rbc] = struct{}{}
+ continue
+ }
mr.addRepoCommit(rbc)
}
}