summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--subcmds/sync.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 1c49b46e..5818b458 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -800,7 +800,11 @@ later is required to fix a server side protocol bug.
800 800
801 jobs = opt.jobs 801 jobs = opt.jobs
802 802
803 gc_args = ('--auto', '--cruft') 803 gc_args = ['--auto']
804 backup_cruft = False
805 if git_require((2, 37, 0)):
806 gc_args.append('--cruft')
807 backup_cruft = True
804 pack_refs_args = () 808 pack_refs_args = ()
805 if jobs < 2: 809 if jobs < 2:
806 for (run_gc, bare_git) in tidy_dirs.values(): 810 for (run_gc, bare_git) in tidy_dirs.values():
@@ -810,7 +814,8 @@ later is required to fix a server side protocol bug.
810 bare_git.gc(*gc_args) 814 bare_git.gc(*gc_args)
811 else: 815 else:
812 bare_git.pack_refs(*pack_refs_args) 816 bare_git.pack_refs(*pack_refs_args)
813 self._backup_cruft(bare_git) 817 if backup_cruft:
818 self._backup_cruft(bare_git)
814 pm.end() 819 pm.end()
815 return 820 return
816 821
@@ -834,7 +839,8 @@ later is required to fix a server side protocol bug.
834 err_event.set() 839 err_event.set()
835 raise 840 raise
836 finally: 841 finally:
837 self._backup_cruft(bare_git) 842 if backup_cruft:
843 self._backup_cruft(bare_git)
838 pm.finish(bare_git._project.name) 844 pm.finish(bare_git._project.name)
839 sem.release() 845 sem.release()
840 846