From 59b417493e0b0a18ba11f9d214308e82872c38e6 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Thu, 7 May 2015 14:36:09 +0900 Subject: [PATCH] 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 --- subcmds/sync.py | 18 +++++++++++++----- 1 file 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. 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 @@ later is required to fix a server side protocol bug. [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 @@ later is required to fix a server side protocol bug. % (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()