summaryrefslogtreecommitdiffstats
path: root/subcmds/sync.py
diff options
context:
space:
mode:
authorLaMont Jones <lamontjones@google.com>2022-09-22 19:05:01 +0000
committerLaMont Jones <lamontjones@google.com>2022-09-22 19:18:48 +0000
commitacc4c857a0b6e2e33e3647028cbd312498fd5900 (patch)
tree1638467a6a312a9aadd6d15b41ef8f9366e9c788 /subcmds/sync.py
parenta39af3d4322135202aabfc78cc65809a28a4ca75 (diff)
downloadgit-repo-acc4c857a0b6e2e33e3647028cbd312498fd5900.tar.gz
sync: only use --cruft when git supports it.v2.29.3
git gc --cruft was added in 2.37.0. Bug: https://crbug.com/gerrit/16270 Change-Id: I71e46741e33472a92f16d6f11c51a23e1e55d869 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/346577 Reviewed-by: Emily Shaffer <emilyshaffer@google.com> Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'subcmds/sync.py')
-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