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 | ||
