From 727cc3e32424886b90df2094063549189cbbb390 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Thu, 7 May 2015 14:16:49 +0900 Subject: sync: Improve error message when writing smart sync manifest fails The error message only states that writing the manifest failed. Include the exception message, so it's easier to track down the reason that the write failed. Change-Id: I06e942c48a19521ba45292199519dd0a8bdb1de7 --- subcmds/sync.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'subcmds/sync.py') diff --git a/subcmds/sync.py b/subcmds/sync.py index b4546c15..c9ca8897 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -592,8 +592,9 @@ later is required to fix a server side protocol bug. f.write(manifest_str) finally: f.close() - except IOError: - print('error: cannot write manifest to %s' % manifest_path, + except IOError as e: + print('error: cannot write manifest to %s:\n%s' + % (manifest_path, e), file=sys.stderr) sys.exit(1) self._ReloadManifest(manifest_name) -- cgit v1.2.3-54-g00ecf From 59b417493e0b0a18ba11f9d214308e82872c38e6 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Thu, 7 May 2015 14:36:09 +0900 Subject: 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(-) (limited to 'subcmds/sync.py') 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() -- cgit v1.2.3-54-g00ecf