diff options
Diffstat (limited to 'subcmds/sync.py')
-rw-r--r-- | subcmds/sync.py | 12 |
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 | ||