From c5640565d6a3a3c139fabf50d281673a98ab4469 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Wed, 2 Mar 2022 16:14:55 +0200 Subject: [PATCH] caught exceptions which might occur during pull or push and log them properly (fix #103) --- mergin/client_pull.py | 8 +++++++- mergin/client_push.py | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/mergin/client_pull.py b/mergin/client_pull.py index 3398ec7f..6e29b392 100644 --- a/mergin/client_pull.py +++ b/mergin/client_pull.py @@ -573,7 +573,13 @@ def pull_project_finalize(job, user_name): os.remove(basefile) raise ClientError("Cannot patch basefile {}! Please try syncing again.".format(basefile)) - conflicts = job.mp.apply_pull_changes(job.pull_changes, job.temp_dir, user_name) + try: + conflicts = job.mp.apply_pull_changes(job.pull_changes, job.temp_dir, user_name) + except Exception as e: + job.mp.log.error("Failed to apply pull changes: " + str(e)) + job.mp.log.info("--- pull aborted") + raise ClientError("Failed to apply pull changes: " + str(e)) + job.mp.metadata = { 'name': job.project_path, 'version': job.version if job.version else "v0", # for new projects server version is "" diff --git a/mergin/client_push.py b/mergin/client_push.py index cc9020c4..b3ed1763 100644 --- a/mergin/client_push.py +++ b/mergin/client_push.py @@ -281,7 +281,12 @@ def push_project_finalize(job): 'version': job.server_resp['version'], 'files': job.server_resp["files"] } - job.mp.apply_push_changes(job.changes) + try: + job.mp.apply_push_changes(job.changes) + except Exception as e: + job.mp.log.error("Failed to apply push changes: " + str(e)) + job.mp.log.info("--- push aborted") + raise ClientError("Failed to apply push changes: " + str(e)) job.tmp_dir.cleanup() # delete our temporary dir and all its content