From 4ba29c42ca7edac9ea32b16614557e72bfbcb9c8 Mon Sep 17 00:00:00 2001 From: Shashank Devaraj Date: Mon, 5 Sep 2022 12:05:47 +0530 Subject: diffmanifests: Handle Missing Projects in Repo Workspace By default there are 4 categories in the diffmanifests api puts the diffs in to - added, removed, changed and unreachable Example of command - repo diffmanifests 1.xml 2.xml added - list down the projects present in second manifest but not in first removed - list down the projects present in first but not in second changed - list down the changes and the differences for each project unreachable - when it encounters revision value in a project is incorrect But, when there are projects present in both manifests and could not find in local workspace where we have cloned the repo(because of different/subset manifest xml) - this will create unhandled exception Now we have added a 5th category called 'missing' - where in such cases it will handle the scenario and print the log for user Example: added projects : project_2 at revision e6c8a59832c05dc4b6a68cee6bc0feb832181725 removed projects : project_1 at revision e6c8a59832c05dc4b6a68cee6bc0feb832181725 changed projects : project_3 changed from 3bb890e1286f04e84d505e5db48e0ada89892331 to e434b3736f11537c67590fefadfe4495895e9785 missing projects : project_4 Change-Id: I244e8389bff7e95664c29d3dcb61e22308e3a573 Signed-off-by: Shashank Devaraj Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344774 Reviewed-by: Mike Frysinger --- subcmds/diffmanifests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'subcmds/diffmanifests.py') diff --git a/subcmds/diffmanifests.py b/subcmds/diffmanifests.py index 0e5f4108..08196ef9 100644 --- a/subcmds/diffmanifests.py +++ b/subcmds/diffmanifests.py @@ -118,6 +118,16 @@ synced and their revisions won't be found. self.printRevision(project.revisionExpr) self.out.nl() + if diff['missing']: + self.out.nl() + self.printText('missing projects : \n') + self.out.nl() + for project in diff['missing']: + self.printProject('\t%s' % (project.relpath)) + self.printText(' at revision ') + self.printRevision(project.revisionExpr) + self.out.nl() + if diff['changed']: self.out.nl() self.printText('changed projects : \n') -- cgit v1.2.3-54-g00ecf