summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--subcmds/sync.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index b7542cca..862c7e2c 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -68,9 +68,12 @@ from manifest_xml import GitcManifest
68_ONE_DAY_S = 24 * 60 * 60 68_ONE_DAY_S = 24 * 60 * 60
69# Env var to implicitly turn off object backups. 69# Env var to implicitly turn off object backups.
70REPO_BACKUP_OBJECTS = 'REPO_BACKUP_OBJECTS' 70REPO_BACKUP_OBJECTS = 'REPO_BACKUP_OBJECTS'
71
72_BACKUP_OBJECTS = os.environ.get(REPO_BACKUP_OBJECTS) != '0' 71_BACKUP_OBJECTS = os.environ.get(REPO_BACKUP_OBJECTS) != '0'
73 72
73# Env var to implicitly turn auto-gc back on.
74_REPO_AUTO_GC = 'REPO_AUTO_GC'
75_AUTO_GC = os.environ.get(_REPO_AUTO_GC) == '1'
76
74 77
75class _FetchOneResult(NamedTuple): 78class _FetchOneResult(NamedTuple):
76 """_FetchOne return value. 79 """_FetchOne return value.
@@ -312,7 +315,7 @@ later is required to fix a server side protocol bug.
312 help='delete refs that no longer exist on the remote (default)') 315 help='delete refs that no longer exist on the remote (default)')
313 p.add_option('--no-prune', dest='prune', action='store_false', 316 p.add_option('--no-prune', dest='prune', action='store_false',
314 help='do not delete refs that no longer exist on the remote') 317 help='do not delete refs that no longer exist on the remote')
315 p.add_option('--auto-gc', action='store_true', 318 p.add_option('--auto-gc', action='store_true', default=None,
316 help='run garbage collection on all synced projects') 319 help='run garbage collection on all synced projects')
317 p.add_option('--no-auto-gc', dest='auto_gc', action='store_false', 320 p.add_option('--no-auto-gc', dest='auto_gc', action='store_false',
318 help='do not run garbage collection on any projects (default)') 321 help='do not run garbage collection on any projects (default)')
@@ -1219,6 +1222,11 @@ later is required to fix a server side protocol bug.
1219 if opt.prune is None: 1222 if opt.prune is None:
1220 opt.prune = True 1223 opt.prune = True
1221 1224
1225 if opt.auto_gc is None and _AUTO_GC:
1226 print(f"Will run `git gc --auto` because {_REPO_AUTO_GC} is set.",
1227 file=sys.stderr)
1228 opt.auto_gc = True
1229
1222 def Execute(self, opt, args): 1230 def Execute(self, opt, args):
1223 manifest = self.outer_manifest 1231 manifest = self.outer_manifest
1224 if not opt.outer_manifest: 1232 if not opt.outer_manifest: