diff --git a/docs/manifest-format.txt b/docs/manifest-format.txt index c76df801..21f19db6 100644 --- a/docs/manifest-format.txt +++ b/docs/manifest-format.txt @@ -38,6 +38,7 @@ following DTD: + diff --git a/manifest_xml.py b/manifest_xml.py index 0e6421f1..a0252057 100644 --- a/manifest_xml.py +++ b/manifest_xml.py @@ -29,6 +29,7 @@ class _Default(object): revisionExpr = None remote = None + sync_j = 1 class _XmlRemote(object): def __init__(self, @@ -133,6 +134,9 @@ class XmlManifest(object): if d.revisionExpr: have_default = True e.setAttribute('revision', d.revisionExpr) + if d.sync_j > 1: + have_default = True + e.setAttribute('sync-j', '%d' % d.sync_j) if have_default: root.appendChild(e) root.appendChild(doc.createTextNode('')) @@ -401,6 +405,11 @@ class XmlManifest(object): d.revisionExpr = node.getAttribute('revision') if d.revisionExpr == '': d.revisionExpr = None + sync_j = node.getAttribute('sync-j') + if sync_j == '' or sync_j is None: + d.sync_j = 1 + else: + d.sync_j = int(sync_j) return d def _ParseNotice(self, node): diff --git a/subcmds/sync.py b/subcmds/sync.py index 93010c51..7ab0b1fb 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -117,6 +117,8 @@ later is required to fix a server side protocol bug. """ def _Options(self, p, show_smart=True): + self.jobs = self.manifest.default.sync_j + p.add_option('-f', '--force-broken', dest='force_broken', action='store_true', help="continue sync even if a project fails to sync") @@ -134,7 +136,8 @@ later is required to fix a server side protocol bug. help='be more quiet') p.add_option('-j','--jobs', dest='jobs', action='store', type='int', - help="number of projects to fetch simultaneously") + default=self.jobs, + help="projects to fetch simultaneously (default %d)" % self.jobs) if show_smart: p.add_option('-s', '--smart-sync', dest='smart_sync', action='store_true',