project: only use --no-auto-gc for git 2.23.0+

The flag for git fetch was introduced in git 2.23.0. Also skip the bloat
check after sync if using an older version.

Bug: 468589976
Bug: 379111283
Change-Id: Ib53e5494350c71a83906e5219d3a8c2b654e531f
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/536082
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Gavin Mak <gavinmak@google.com>
diff --git a/project.py b/project.py
index a61c43e..8da2efc 100644
--- a/project.py
+++ b/project.py
@@ -2579,7 +2579,7 @@
         effective_depth = (
             self.clone_depth or self.manifest.manifestProject.depth
         )
-        if effective_depth == 1:
+        if effective_depth == 1 and git_require((2, 23, 0)):
             cmd.append("--no-auto-gc")
 
         if not verbose:
diff --git a/subcmds/sync.py b/subcmds/sync.py
index b7cb173..eb71ae9 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -1437,6 +1437,12 @@
         run 'git count-objects -v' and warn if the repository is accumulating
         excessive pack files or garbage.
         """
+        # We only care about bloated projects if we have a git version that
+        # supports --no-auto-gc (2.23.0+) since what we use to disable auto-gc
+        # in Project._RemoteFetch.
+        if not git_require((2, 23, 0)):
+            return
+
         projects = [p for p in projects if p.clone_depth]
         if not projects:
             return