summaryrefslogtreecommitdiffstats
path: root/subcmds/sync.py
diff options
context:
space:
mode:
authorJulien Campergue <julien.campergue@parrot.com>2013-10-16 11:02:35 +0200
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2013-12-10 08:27:07 +0000
commit335f5ef4ad25a85c69fe6d8c848c5d1d447e22c8 (patch)
tree6a64a34ce5063d8d255c7840e167db2484e68c9a /subcmds/sync.py
parent61df418c599a0359b33b8a65a12660023fc37a2a (diff)
downloadgit-repo-335f5ef4ad25a85c69fe6d8c848c5d1d447e22c8.tar.gz
Add --archive option to init to sync using git archive
This significantly reduces sync time and used brandwidth as only a tar of each project's revision is checked out, but git is not accessible from projects anymore. This is relevant when git is not needed in projects but sync speed/brandwidth may be important like on CI servers when building several versions from scratch regularly for example. Archive is not supported over http/https. Change-Id: I48c3c7de2cd5a1faec33e295fcdafbc7807d0e4d Signed-off-by: Julien Campergue <julien.campergue@parrot.com>
Diffstat (limited to 'subcmds/sync.py')
-rw-r--r--subcmds/sync.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index d8aec59b..0279ff60 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -253,7 +253,7 @@ later is required to fix a server side protocol bug.
253 quiet=opt.quiet, 253 quiet=opt.quiet,
254 current_branch_only=opt.current_branch_only, 254 current_branch_only=opt.current_branch_only,
255 clone_bundle=not opt.no_clone_bundle, 255 clone_bundle=not opt.no_clone_bundle,
256 no_tags=opt.no_tags) 256 no_tags=opt.no_tags, archive=self.manifest.IsArchive)
257 self._fetch_times.Set(project, time.time() - start) 257 self._fetch_times.Set(project, time.time() - start)
258 258
259 # Lock around all the rest of the code, since printing, updating a set 259 # Lock around all the rest of the code, since printing, updating a set
@@ -294,7 +294,8 @@ later is required to fix a server side protocol bug.
294 quiet=opt.quiet, 294 quiet=opt.quiet,
295 current_branch_only=opt.current_branch_only, 295 current_branch_only=opt.current_branch_only,
296 clone_bundle=not opt.no_clone_bundle, 296 clone_bundle=not opt.no_clone_bundle,
297 no_tags=opt.no_tags): 297 no_tags=opt.no_tags,
298 archive=self.manifest.IsArchive):
298 fetched.add(project.gitdir) 299 fetched.add(project.gitdir)
299 else: 300 else:
300 print('error: Cannot fetch %s' % project.name, file=sys.stderr) 301 print('error: Cannot fetch %s' % project.name, file=sys.stderr)
@@ -338,7 +339,9 @@ later is required to fix a server side protocol bug.
338 pm.end() 339 pm.end()
339 self._fetch_times.Save() 340 self._fetch_times.Save()
340 341
341 self._GCProjects(projects) 342 if not self.manifest.IsArchive:
343 self._GCProjects(projects)
344
342 return fetched 345 return fetched
343 346
344 def _GCProjects(self, projects): 347 def _GCProjects(self, projects):
@@ -641,7 +644,7 @@ later is required to fix a server side protocol bug.
641 previously_missing_set = missing_set 644 previously_missing_set = missing_set
642 fetched.update(self._Fetch(missing, opt)) 645 fetched.update(self._Fetch(missing, opt))
643 646
644 if self.manifest.IsMirror: 647 if self.manifest.IsMirror or self.manifest.IsArchive:
645 # bail out now, we have no working tree 648 # bail out now, we have no working tree
646 return 649 return
647 650