From e46dcff2767435630f9f28e4e5ea141309798801 Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Wed, 28 Aug 2024 11:54:59 +0200 Subject: pkg/covermerger: optimize checkouts Every commit checkout takes >3 seconds. Let's optimize this operation to save on large merges. --- pkg/covermerger/provider_monorepo.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'pkg/covermerger') 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) } } -- cgit mrf-deployment