From a3a73726129f7aa9cc12bbdc1f01700189936284 Mon Sep 17 00:00:00 2001 From: Josip Sokcevic Date: Thu, 14 Mar 2024 23:50:33 +0000 Subject: main: Stringify project name in error_info If a project can't be removed from checkout due to uncommitted changes present, error.project is type of Project and not a string (as it is in some cases). Project is not JSON serializable, resulting in exception within exception handler: TypeError: Object of type Project is not JSON serializable This change casts project to string as a defensive mechanism. It also passes project name instead of project object. Change-Id: Ie7b782d73dc3647975755d5a3774d16ea6cd5348 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/413877 Tested-by: Josip Sokcevic Reviewed-by: Gavin Mak Commit-Queue: Josip Sokcevic --- project.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'project.py') diff --git a/project.py b/project.py index 2ba2b766..7d6b6cea 100644 --- a/project.py +++ b/project.py @@ -1813,11 +1813,11 @@ class Project: ) else: msg = ( - "error: %s: Cannot remove project: uncommitted" + "error: %s: Cannot remove project: uncommitted " "changes are present.\n" % self.RelPath(local=False) ) logger.error(msg) - raise DeleteDirtyWorktreeError(msg, project=self) + raise DeleteDirtyWorktreeError(msg, project=self.name) if verbose: print(f"{self.RelPath(local=False)}: Deleting obsolete checkout.") -- cgit v1.2.3-54-g00ecf