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 <delphij@google.com>
Tested-by: LaMont Jones <lamontjones@google.com>
diff --git a/subcmds/branches.py b/subcmds/branches.py
index b89cc2f..fcf67ef 100644
--- a/subcmds/branches.py
+++ b/subcmds/branches.py
@@ -155,11 +155,11 @@
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 08196ef..4f9f5b0 100644
--- a/subcmds/diffmanifests.py
+++ b/subcmds/diffmanifests.py
@@ -77,33 +77,35 @@
metavar='<FORMAT>',
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 @@
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 @@
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 @@
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 @@
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 @@
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 862c7e2..1ed37ce 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -723,7 +723,7 @@
# ...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()