sync --quiet: be more quiet
Change-Id: I5e8363c7b32e4546d1236cfc5a32e01c3e5ea8e6
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/project.py b/project.py
index 8ffed84..ce85b86 100644
--- a/project.py
+++ b/project.py
@@ -618,18 +618,19 @@
## Sync ##
- def Sync_NetworkHalf(self):
+ def Sync_NetworkHalf(self, quiet=False):
"""Perform only the network IO portion of the sync process.
Local working directory/branch state is not affected.
"""
is_new = not self.Exists
if is_new:
- print >>sys.stderr
- print >>sys.stderr, 'Initializing project %s ...' % self.name
+ if not quiet:
+ print >>sys.stderr
+ print >>sys.stderr, 'Initializing project %s ...' % self.name
self._InitGitDir()
self._InitRemote()
- if not self._RemoteFetch(initial = is_new):
+ if not self._RemoteFetch(initial=is_new, quiet=quiet):
return False
#Check that the requested ref was found after fetch
@@ -642,7 +643,7 @@
#
rev = self.revisionExpr
if rev.startswith(R_TAGS):
- self._RemoteFetch(None, rev[len(R_TAGS):])
+ self._RemoteFetch(None, rev[len(R_TAGS):], quiet=quiet)
if self.worktree:
self._InitMRef()
@@ -1025,7 +1026,9 @@
## Direct Git Commands ##
- def _RemoteFetch(self, name=None, tag=None, initial=False):
+ def _RemoteFetch(self, name=None, tag=None,
+ initial=False,
+ quiet=False):
if not name:
name = self.remote.name
@@ -1088,6 +1091,8 @@
ref_dir = None
cmd = ['fetch']
+ if quiet:
+ cmd.append('--quiet')
if not self.worktree:
cmd.append('--update-head-ok')
cmd.append(name)
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 6cac2e5..1f4b137 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -110,6 +110,9 @@
p.add_option('-d','--detach',
dest='detach_head', action='store_true',
help='detach projects back to manifest revision')
+ p.add_option('-q','--quiet',
+ dest='quiet', action='store_true',
+ help='be more quiet')
p.add_option('-j','--jobs',
dest='jobs', action='store', type='int',
help="number of projects to fetch simultaneously")
@@ -126,8 +129,8 @@
dest='repo_upgraded', action='store_true',
help=SUPPRESS_HELP)
- def _FetchHelper(self, project, lock, fetched, pm, sem):
- if not project.Sync_NetworkHalf():
+ def _FetchHelper(self, opt, project, lock, fetched, pm, sem):
+ if not project.Sync_NetworkHalf(quiet=opt.quiet):
print >>sys.stderr, 'error: Cannot fetch %s' % project.name
sem.release()
sys.exit(1)
@@ -138,14 +141,14 @@
lock.release()
sem.release()
- def _Fetch(self, projects):
+ def _Fetch(self, projects, opt):
fetched = set()
pm = Progress('Fetching projects', len(projects))
if self.jobs == 1:
for project in projects:
pm.update()
- if project.Sync_NetworkHalf():
+ if project.Sync_NetworkHalf(quiet=opt.quiet):
fetched.add(project.gitdir)
else:
print >>sys.stderr, 'error: Cannot fetch %s' % project.name
@@ -157,7 +160,12 @@
for project in projects:
sem.acquire()
t = _threading.Thread(target = self._FetchHelper,
- args = (project, lock, fetched, pm, sem))
+ args = (opt,
+ project,
+ lock,
+ fetched,
+ pm,
+ sem))
threads.add(t)
t.start()
@@ -291,7 +299,7 @@
_PostRepoUpgrade(self.manifest)
if not opt.local_only:
- mp.Sync_NetworkHalf()
+ mp.Sync_NetworkHalf(quiet=opt.quiet)
if mp.HasChanges:
syncbuf = SyncBuffer(mp.config)
@@ -308,7 +316,7 @@
to_fetch.append(rp)
to_fetch.extend(all)
- fetched = self._Fetch(to_fetch)
+ fetched = self._Fetch(to_fetch, opt)
_PostRepoFetch(rp, opt.no_repo_verify)
if opt.network_only:
# bail out now; the rest touches the working tree
@@ -320,7 +328,7 @@
for project in all:
if project.gitdir not in fetched:
missing.append(project)
- self._Fetch(missing)
+ self._Fetch(missing, opt)
if self.manifest.IsMirror:
# bail out now, we have no working tree