From 2f4b200571f62396c2773f0ecd12a9ff310c4ace Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 23 Jun 2023 12:52:19 +0200 Subject: [PATCH] Re-instantiate non-optimized clone fallback This adds a bit back which got removed in 69f567bdc75a30748fe91783b500566e5aa01d5e, as there are reasons for the controller to perform a non-optimized clone. However, we always want to attempt the optimized version first without it being put behind a feature gate. Which was the original intent of the referenced commit. Signed-off-by: Hidde Beydals --- internal/controller/gitrepository_controller.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/controller/gitrepository_controller.go b/internal/controller/gitrepository_controller.go index a1196b2d..4edd480f 100644 --- a/internal/controller/gitrepository_controller.go +++ b/internal/controller/gitrepository_controller.go @@ -536,7 +536,7 @@ func (r *GitRepositoryReconciler) reconcileSource(ctx context.Context, sp *patch // Persist the ArtifactSet. *includes = *artifacts - c, err := r.gitCheckout(ctx, obj, authOpts, dir) + c, err := r.gitCheckout(ctx, obj, authOpts, dir, true) if err != nil { return sreconcile.ResultEmpty, err } @@ -578,7 +578,7 @@ func (r *GitRepositoryReconciler) reconcileSource(ctx context.Context, sp *patch // If we can't skip the reconciliation, checkout again without any // optimization. - c, err := r.gitCheckout(ctx, obj, authOpts, dir) + c, err := r.gitCheckout(ctx, obj, authOpts, dir, false) if err != nil { return sreconcile.ResultEmpty, err } @@ -777,7 +777,7 @@ func (r *GitRepositoryReconciler) reconcileInclude(ctx context.Context, sp *patc // gitCheckout builds checkout options with the given configurations and // performs a git checkout. func (r *GitRepositoryReconciler) gitCheckout(ctx context.Context, - obj *sourcev1.GitRepository, authOpts *git.AuthOptions, dir string) (*git.Commit, error) { + obj *sourcev1.GitRepository, authOpts *git.AuthOptions, dir string, optimized bool) (*git.Commit, error) { // Configure checkout strategy. cloneOpts := repository.CloneConfig{ RecurseSubmodules: obj.Spec.RecurseSubmodules, @@ -794,7 +794,7 @@ func (r *GitRepositoryReconciler) gitCheckout(ctx context.Context, // Only if the object has an existing artifact in storage, attempt to // short-circuit clone operation. reconcileStorage has already verified // that the artifact exists. - if conditions.IsTrue(obj, sourcev1.ArtifactInStorageCondition) { + if optimized && conditions.IsTrue(obj, sourcev1.ArtifactInStorageCondition) { if artifact := obj.GetArtifact(); artifact != nil { cloneOpts.LastObservedCommit = artifact.Revision }