summaryrefslogtreecommitdiffstats
path: root/repo
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2020-05-20 16:03:45 -0700
committerJonathan Nieder <jrn@google.com>2020-05-21 19:47:36 +0000
commitd79a4bc51b6ca5b47bbea861143c72bccc0ad13a (patch)
treef2d8de86fc76c9207af7be2b0c7ff683471df761 /repo
parent682f0b6426a06ed1e89b130d50c6521b1c67d529 (diff)
downloadgit-repo-d79a4bc51b6ca5b47bbea861143c72bccc0ad13a.tar.gz
Make partial clone imply no-clone-bundle by default.
For large projects, clone bundle is useful because it provided a way to efficiently transfer a large portion of git objects through CDN, without needing to interact with git server. However, with partial clones, the intention is to not download most of the objects, so the use of clone bundles would defeat the space savings normally seen with partial clones, as they are downloaded before the first fetch. A new option, --clone-bundle is added to override this behavior. Add a new repo.clonebundle variable which remembers the choice if explicitly given from command line at repo init. Change-Id: I03638474af303a82af34579e16cd4700690b5f43 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/268452 Tested-by: Xin Li <delphij@google.com> Reviewed-by: Jonathan Nieder <jrn@google.com>
Diffstat (limited to 'repo')
-rwxr-xr-xrepo9
1 files changed, 7 insertions, 2 deletions
diff --git a/repo b/repo
index be59c87f..18c7e77a 100755
--- a/repo
+++ b/repo
@@ -317,9 +317,11 @@ def GetParser(gitc_init=False):
317 help='restrict manifest projects to ones with a specified ' 317 help='restrict manifest projects to ones with a specified '
318 'platform group [auto|all|none|linux|darwin|...]', 318 'platform group [auto|all|none|linux|darwin|...]',
319 metavar='PLATFORM') 319 metavar='PLATFORM')
320 group.add_option('--clone-bundle', action='store_true',
321 help='enable use of /clone.bundle on HTTP/HTTPS (default if not --partial-clone)')
320 group.add_option('--no-clone-bundle', 322 group.add_option('--no-clone-bundle',
321 dest='clone_bundle', default=True, action='store_false', 323 dest='clone_bundle', action='store_false',
322 help='disable use of /clone.bundle on HTTP/HTTPS') 324 help='disable use of /clone.bundle on HTTP/HTTPS (default if --partial-clone)')
323 group.add_option('--no-tags', 325 group.add_option('--no-tags',
324 dest='tags', default=True, action='store_false', 326 dest='tags', default=True, action='store_false',
325 help="don't fetch tags in the manifest") 327 help="don't fetch tags in the manifest")
@@ -502,6 +504,9 @@ def _Init(args, gitc_init=False):
502 opt.quiet = opt.output_mode is False 504 opt.quiet = opt.output_mode is False
503 opt.verbose = opt.output_mode is True 505 opt.verbose = opt.output_mode is True
504 506
507 if opt.clone_bundle is None:
508 opt.clone_bundle = False if opt.partial_clone else True
509
505 url = opt.repo_url or REPO_URL 510 url = opt.repo_url or REPO_URL
506 rev = opt.repo_rev or REPO_REV 511 rev = opt.repo_rev or REPO_REV
507 512