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
This commit is contained in:
David Pursehouse 2015-05-07 14:36:09 +09:00
parent 30d13eea86
commit 59b417493e

View File

@ -517,6 +517,9 @@ later is required to fix a server side protocol bug.
self.manifest.Override(opt.manifest_name) self.manifest.Override(opt.manifest_name)
manifest_name = 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 opt.smart_sync or opt.smart_tag:
if not self.manifest.manifest_server: if not self.manifest.manifest_server:
@ -583,18 +586,16 @@ later is required to fix a server side protocol bug.
[success, manifest_str] = server.GetManifest(opt.smart_tag) [success, manifest_str] = server.GetManifest(opt.smart_tag)
if success: if success:
manifest_name = "smart_sync_override.xml" manifest_name = smart_sync_manifest_name
manifest_path = os.path.join(self.manifest.manifestProject.worktree,
manifest_name)
try: try:
f = open(manifest_path, 'w') f = open(smart_sync_manifest_path, 'w')
try: try:
f.write(manifest_str) f.write(manifest_str)
finally: finally:
f.close() f.close()
except IOError as e: except IOError as e:
print('error: cannot write manifest to %s:\n%s' print('error: cannot write manifest to %s:\n%s'
% (manifest_path, e), % (smart_sync_manifest_path, e),
file=sys.stderr) file=sys.stderr)
sys.exit(1) sys.exit(1)
self._ReloadManifest(manifest_name) self._ReloadManifest(manifest_name)
@ -611,6 +612,13 @@ later is required to fix a server side protocol bug.
% (self.manifest.manifest_server, e.errcode, e.errmsg), % (self.manifest.manifest_server, e.errcode, e.errmsg),
file=sys.stderr) file=sys.stderr)
sys.exit(1) 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 = self.manifest.repoProject
rp.PreSync() rp.PreSync()