summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--subcmds/sync.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index c9ca8897..ec333ae7 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -517,6 +517,9 @@ later is required to fix a server side protocol bug.
517 self.manifest.Override(opt.manifest_name) 517 self.manifest.Override(opt.manifest_name)
518 518
519 manifest_name = opt.manifest_name 519 manifest_name = opt.manifest_name
520 smart_sync_manifest_name = "smart_sync_override.xml"
521 smart_sync_manifest_path = os.path.join(
522 self.manifest.manifestProject.worktree, smart_sync_manifest_name)
520 523
521 if opt.smart_sync or opt.smart_tag: 524 if opt.smart_sync or opt.smart_tag:
522 if not self.manifest.manifest_server: 525 if not self.manifest.manifest_server:
@@ -583,18 +586,16 @@ later is required to fix a server side protocol bug.
583 [success, manifest_str] = server.GetManifest(opt.smart_tag) 586 [success, manifest_str] = server.GetManifest(opt.smart_tag)
584 587
585 if success: 588 if success:
586 manifest_name = "smart_sync_override.xml" 589 manifest_name = smart_sync_manifest_name
587 manifest_path = os.path.join(self.manifest.manifestProject.worktree,
588 manifest_name)
589 try: 590 try:
590 f = open(manifest_path, 'w') 591 f = open(smart_sync_manifest_path, 'w')
591 try: 592 try:
592 f.write(manifest_str) 593 f.write(manifest_str)
593 finally: 594 finally:
594 f.close() 595 f.close()
595 except IOError as e: 596 except IOError as e:
596 print('error: cannot write manifest to %s:\n%s' 597 print('error: cannot write manifest to %s:\n%s'
597 % (manifest_path, e), 598 % (smart_sync_manifest_path, e),
598 file=sys.stderr) 599 file=sys.stderr)
599 sys.exit(1) 600 sys.exit(1)
600 self._ReloadManifest(manifest_name) 601 self._ReloadManifest(manifest_name)
@@ -611,6 +612,13 @@ later is required to fix a server side protocol bug.
611 % (self.manifest.manifest_server, e.errcode, e.errmsg), 612 % (self.manifest.manifest_server, e.errcode, e.errmsg),
612 file=sys.stderr) 613 file=sys.stderr)
613 sys.exit(1) 614 sys.exit(1)
615 else: # Not smart sync or smart tag mode
616 if os.path.isfile(smart_sync_manifest_path):
617 try:
618 os.remove(smart_sync_manifest_path)
619 except OSError as e:
620 print('error: failed to remove existing smart sync override manifest: %s' %
621 e, file=sys.stderr)
614 622
615 rp = self.manifest.repoProject 623 rp = self.manifest.repoProject
616 rp.PreSync() 624 rp.PreSync()