From bee4efb8742b90db543378be97247a22773c55f1 Mon Sep 17 00:00:00 2001 From: LaMont Jones Date: Fri, 30 Sep 2022 17:46:52 +0000 Subject: [PATCH] subcmds: display correct path multitree messages Correct usage of project.relpath for multi manifest workspaces. Change-Id: Idc32873552fcdae6eec7b03dde2b2f31134b72fd Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/347534 Reviewed-by: Xin Li Tested-by: LaMont Jones --- subcmds/branches.py | 6 +++--- subcmds/diffmanifests.py | 30 +++++++++++++++++------------- subcmds/sync.py | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/subcmds/branches.py b/subcmds/branches.py index b89cc2f8..fcf67ef5 100644 --- a/subcmds/branches.py +++ b/subcmds/branches.py @@ -155,11 +155,11 @@ is shown, then the branch appears in all projects. if i.IsSplitCurrent or (in_cnt <= project_cnt - in_cnt): in_type = 'in' for b in i.projects: - relpath = b.project.relpath + relpath = _RelPath(b.project) if not i.IsSplitCurrent or b.current: - paths.append(_RelPath(b.project)) + paths.append(relpath) else: - non_cur_paths.append(_RelPath(b.project)) + non_cur_paths.append(relpath) else: fmt = out.notinproject in_type = 'not in' diff --git a/subcmds/diffmanifests.py b/subcmds/diffmanifests.py index 08196ef9..4f9f5b0f 100644 --- a/subcmds/diffmanifests.py +++ b/subcmds/diffmanifests.py @@ -77,33 +77,35 @@ synced and their revisions won't be found. metavar='', help='print the log using a custom git pretty format string') - def _printRawDiff(self, diff, pretty_format=None): + def _printRawDiff(self, diff, pretty_format=None, local=False): + _RelPath = lambda p: p.RelPath(local=local) for project in diff['added']: - self.printText("A %s %s" % (project.relpath, project.revisionExpr)) + self.printText("A %s %s" % (_RelPath(project), project.revisionExpr)) self.out.nl() for project in diff['removed']: - self.printText("R %s %s" % (project.relpath, project.revisionExpr)) + self.printText("R %s %s" % (_RelPath(project), project.revisionExpr)) self.out.nl() for project, otherProject in diff['changed']: - self.printText("C %s %s %s" % (project.relpath, project.revisionExpr, + self.printText("C %s %s %s" % (_RelPath(project), project.revisionExpr, otherProject.revisionExpr)) self.out.nl() self._printLogs(project, otherProject, raw=True, color=False, pretty_format=pretty_format) for project, otherProject in diff['unreachable']: - self.printText("U %s %s %s" % (project.relpath, project.revisionExpr, + self.printText("U %s %s %s" % (_RelPath(project), project.revisionExpr, otherProject.revisionExpr)) self.out.nl() - def _printDiff(self, diff, color=True, pretty_format=None): + def _printDiff(self, diff, color=True, pretty_format=None, local=False): + _RelPath = lambda p: p.RelPath(local=local) if diff['added']: self.out.nl() self.printText('added projects : \n') self.out.nl() for project in diff['added']: - self.printProject('\t%s' % (project.relpath)) + self.printProject('\t%s' % (_RelPath(project))) self.printText(' at revision ') self.printRevision(project.revisionExpr) self.out.nl() @@ -113,7 +115,7 @@ synced and their revisions won't be found. self.printText('removed projects : \n') self.out.nl() for project in diff['removed']: - self.printProject('\t%s' % (project.relpath)) + self.printProject('\t%s' % (_RelPath(project))) self.printText(' at revision ') self.printRevision(project.revisionExpr) self.out.nl() @@ -123,7 +125,7 @@ synced and their revisions won't be found. self.printText('missing projects : \n') self.out.nl() for project in diff['missing']: - self.printProject('\t%s' % (project.relpath)) + self.printProject('\t%s' % (_RelPath(project))) self.printText(' at revision ') self.printRevision(project.revisionExpr) self.out.nl() @@ -133,7 +135,7 @@ synced and their revisions won't be found. self.printText('changed projects : \n') self.out.nl() for project, otherProject in diff['changed']: - self.printProject('\t%s' % (project.relpath)) + self.printProject('\t%s' % (_RelPath(project))) self.printText(' changed from ') self.printRevision(project.revisionExpr) self.printText(' to ') @@ -148,7 +150,7 @@ synced and their revisions won't be found. self.printText('projects with unreachable revisions : \n') self.out.nl() for project, otherProject in diff['unreachable']: - self.printProject('\t%s ' % (project.relpath)) + self.printProject('\t%s ' % (_RelPath(project))) self.printRevision(project.revisionExpr) self.printText(' or ') self.printRevision(otherProject.revisionExpr) @@ -214,6 +216,8 @@ synced and their revisions won't be found. diff = manifest1.projectsDiff(manifest2) if opt.raw: - self._printRawDiff(diff, pretty_format=opt.pretty_format) + self._printRawDiff(diff, pretty_format=opt.pretty_format, + local=opt.this_manifest_only) else: - self._printDiff(diff, color=opt.color, pretty_format=opt.pretty_format) + self._printDiff(diff, color=opt.color, pretty_format=opt.pretty_format, + local=opt.this_manifest_only) diff --git a/subcmds/sync.py b/subcmds/sync.py index 862c7e2c..1ed37cef 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -723,7 +723,7 @@ later is required to fix a server side protocol bug. # ...we'll let existing jobs finish, though. if not success: ret = False - err_results.append(project.relpath) + err_results.append(project.RelPath(local=opt.this_manifest_only)) if opt.fail_fast: if pool: pool.close()