From 597868b4c45bba380249b739c0cf49b868cc8741 Mon Sep 17 00:00:00 2001 From: Mitchel Humpherys Date: Mon, 29 Oct 2012 10:18:34 -0700 Subject: [PATCH] Add --no-tags option to prevent fetching of tags Add an option to pass `--no-tags' to `git fetch'. Change-Id: I4158cc369773e08e55a167091c38ca304a197587 Signed-off-by: Mitchel Humpherys --- project.py | 14 ++++++++++---- subcmds/sync.py | 12 +++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/project.py b/project.py index ba7898ed..295fb10f 100644 --- a/project.py +++ b/project.py @@ -963,7 +963,8 @@ class Project(object): quiet=False, is_new=None, current_branch_only=False, - clone_bundle=True): + clone_bundle=True, + no_tags=False): """Perform only the network IO portion of the sync process. Local working directory/branch state is not affected. """ @@ -1001,7 +1002,8 @@ class Project(object): current_branch_only = True if not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, - current_branch_only=current_branch_only): + current_branch_only=current_branch_only, + no_tags=no_tags): return False if self.worktree: @@ -1551,7 +1553,8 @@ class Project(object): current_branch_only=False, initial=False, quiet=False, - alt_dir=None): + alt_dir=None, + no_tags=False): is_sha1 = False tag_name = None @@ -1644,7 +1647,10 @@ class Project(object): if not current_branch_only: # Fetch whole repo - cmd.append('--tags') + if no_tags: + cmd.append('--no-tags') + else: + cmd.append('--tags') cmd.append((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*')) elif tag_name is not None: cmd.append('tag') diff --git a/subcmds/sync.py b/subcmds/sync.py index 228a279a..5c369a74 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -189,6 +189,9 @@ later is required to fix a server side protocol bug. p.add_option('--fetch-submodules', dest='fetch_submodules', action='store_true', help='fetch submodules from server') + p.add_option('--no-tags', + dest='no_tags', action='store_true', + help="don't fetch tags") if show_smart: p.add_option('-s', '--smart-sync', dest='smart_sync', action='store_true', @@ -235,7 +238,8 @@ later is required to fix a server side protocol bug. success = project.Sync_NetworkHalf( quiet=opt.quiet, current_branch_only=opt.current_branch_only, - clone_bundle=not opt.no_clone_bundle) + clone_bundle=not opt.no_clone_bundle, + no_tags=opt.no_tags) self._fetch_times.Set(project, time.time() - start) # Lock around all the rest of the code, since printing, updating a set @@ -273,7 +277,8 @@ later is required to fix a server side protocol bug. if project.Sync_NetworkHalf( quiet=opt.quiet, current_branch_only=opt.current_branch_only, - clone_bundle=not opt.no_clone_bundle): + clone_bundle=not opt.no_clone_bundle, + no_tags=opt.no_tags): fetched.add(project.gitdir) else: print('error: Cannot fetch %s' % project.name, file=sys.stderr) @@ -558,7 +563,8 @@ later is required to fix a server side protocol bug. if not opt.local_only: mp.Sync_NetworkHalf(quiet=opt.quiet, - current_branch_only=opt.current_branch_only) + current_branch_only=opt.current_branch_only, + no_tags=opt.no_tags) if mp.HasChanges: syncbuf = SyncBuffer(mp.config)