sync: Remove smart sync override manifest when not in smart sync mode
When syncing with the -s or -t option, a smart_sync_override.xml file
is created. This file is left in the file system when syncing again
without the -s or -t option.
Remove the smart sync override manifest, if it exists, when not using
the -s or -t option.
Change-Id: I697a0f6405205ba5f84a4d470becf7cd23c07b4b
diff --git a/subcmds/sync.py b/subcmds/sync.py
index c9ca889..ec333ae 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -517,6 +517,9 @@
self.manifest.Override(opt.manifest_name)
manifest_name = opt.manifest_name
+ smart_sync_manifest_name = "smart_sync_override.xml"
+ smart_sync_manifest_path = os.path.join(
+ self.manifest.manifestProject.worktree, smart_sync_manifest_name)
if opt.smart_sync or opt.smart_tag:
if not self.manifest.manifest_server:
@@ -583,18 +586,16 @@
[success, manifest_str] = server.GetManifest(opt.smart_tag)
if success:
- manifest_name = "smart_sync_override.xml"
- manifest_path = os.path.join(self.manifest.manifestProject.worktree,
- manifest_name)
+ manifest_name = smart_sync_manifest_name
try:
- f = open(manifest_path, 'w')
+ f = open(smart_sync_manifest_path, 'w')
try:
f.write(manifest_str)
finally:
f.close()
except IOError as e:
print('error: cannot write manifest to %s:\n%s'
- % (manifest_path, e),
+ % (smart_sync_manifest_path, e),
file=sys.stderr)
sys.exit(1)
self._ReloadManifest(manifest_name)
@@ -611,6 +612,13 @@
% (self.manifest.manifest_server, e.errcode, e.errmsg),
file=sys.stderr)
sys.exit(1)
+ else: # Not smart sync or smart tag mode
+ if os.path.isfile(smart_sync_manifest_path):
+ try:
+ os.remove(smart_sync_manifest_path)
+ except OSError as e:
+ print('error: failed to remove existing smart sync override manifest: %s' %
+ e, file=sys.stderr)
rp = self.manifest.repoProject
rp.PreSync()