summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/manifest-format.txt1
-rw-r--r--manifest_xml.py9
-rw-r--r--subcmds/sync.py5
3 files changed, 14 insertions, 1 deletions
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:
38 <!ELEMENT default (EMPTY)> 38 <!ELEMENT default (EMPTY)>
39 <!ATTLIST default remote IDREF #IMPLIED> 39 <!ATTLIST default remote IDREF #IMPLIED>
40 <!ATTLIST default revision CDATA #IMPLIED> 40 <!ATTLIST default revision CDATA #IMPLIED>
41 <!ATTLIST default sync-j CDATA #IMPLIED>
41 42
42 <!ELEMENT manifest-server (EMPTY)> 43 <!ELEMENT manifest-server (EMPTY)>
43 <!ATTLIST url CDATA #REQUIRED> 44 <!ATTLIST url CDATA #REQUIRED>
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):
29 29
30 revisionExpr = None 30 revisionExpr = None
31 remote = None 31 remote = None
32 sync_j = 1
32 33
33class _XmlRemote(object): 34class _XmlRemote(object):
34 def __init__(self, 35 def __init__(self,
@@ -133,6 +134,9 @@ class XmlManifest(object):
133 if d.revisionExpr: 134 if d.revisionExpr:
134 have_default = True 135 have_default = True
135 e.setAttribute('revision', d.revisionExpr) 136 e.setAttribute('revision', d.revisionExpr)
137 if d.sync_j > 1:
138 have_default = True
139 e.setAttribute('sync-j', '%d' % d.sync_j)
136 if have_default: 140 if have_default:
137 root.appendChild(e) 141 root.appendChild(e)
138 root.appendChild(doc.createTextNode('')) 142 root.appendChild(doc.createTextNode(''))
@@ -401,6 +405,11 @@ class XmlManifest(object):
401 d.revisionExpr = node.getAttribute('revision') 405 d.revisionExpr = node.getAttribute('revision')
402 if d.revisionExpr == '': 406 if d.revisionExpr == '':
403 d.revisionExpr = None 407 d.revisionExpr = None
408 sync_j = node.getAttribute('sync-j')
409 if sync_j == '' or sync_j is None:
410 d.sync_j = 1
411 else:
412 d.sync_j = int(sync_j)
404 return d 413 return d
405 414
406 def _ParseNotice(self, node): 415 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.
117""" 117"""
118 118
119 def _Options(self, p, show_smart=True): 119 def _Options(self, p, show_smart=True):
120 self.jobs = self.manifest.default.sync_j
121
120 p.add_option('-f', '--force-broken', 122 p.add_option('-f', '--force-broken',
121 dest='force_broken', action='store_true', 123 dest='force_broken', action='store_true',
122 help="continue sync even if a project fails to sync") 124 help="continue sync even if a project fails to sync")
@@ -134,7 +136,8 @@ later is required to fix a server side protocol bug.
134 help='be more quiet') 136 help='be more quiet')
135 p.add_option('-j','--jobs', 137 p.add_option('-j','--jobs',
136 dest='jobs', action='store', type='int', 138 dest='jobs', action='store', type='int',
137 help="number of projects to fetch simultaneously") 139 default=self.jobs,
140 help="projects to fetch simultaneously (default %d)" % self.jobs)
138 if show_smart: 141 if show_smart:
139 p.add_option('-s', '--smart-sync', 142 p.add_option('-s', '--smart-sync',
140 dest='smart_sync', action='store_true', 143 dest='smart_sync', action='store_true',