From a37a758e69a77ca247e724f0c8d5a6f83f3bf354 Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Wed, 23 Feb 2022 16:53:05 -0800 Subject: [PATCH] Set some gc.* git config In particular, this sets `gc.autoDetach` to "false". --- cmd/git-sync/main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cmd/git-sync/main.go b/cmd/git-sync/main.go index c778efb..1607b1c 100644 --- a/cmd/git-sync/main.go +++ b/cmd/git-sync/main.go @@ -500,6 +500,12 @@ func main() { } } + // Set additional configs we want, but users might override. + if err := git.setupDefaultGitConfigs(ctx); err != nil { + log.Error(err, "ERROR: can't set default git configs") + os.Exit(1) + } + // This needs to be after all other git-related config flags. if *flGitConfig != "" { if err := git.setupExtraGitConfigs(ctx, *flGitConfig); err != nil { @@ -1379,6 +1385,24 @@ func (git *repoSync) CallAskPassURL(ctx context.Context) error { return nil } +func (git *repoSync) setupDefaultGitConfigs(ctx context.Context) error { + configs := []keyVal{{ + // Never auto-detach GC runs. + key: "gc.autoDetach", + val: "false", + }, { + // Fairly aggressive GC. + key: "gc.pruneExpire", + val: "now", + }} + for _, kv := range configs { + if _, err := git.run.Run(ctx, "", nil, git.cmd, "config", "--global", kv.key, kv.val); err != nil { + return fmt.Errorf("error configuring git %q %q: %v", kv.key, kv.val, err) + } + } + return nil +} + func (git *repoSync) setupExtraGitConfigs(ctx context.Context, configsFlag string) error { git.log.V(1).Info("setting additional git configs")