summaryrefslogtreecommitdiff
path: root/subcmds/branches.py
diff options
context:
space:
mode:
authorEtan Cohen <etancohen@google.com>2014-07-09 21:33:31 -0700
committerEtan Cohen <etancohen@google.com>2014-07-11 10:56:03 -0700
commit588142dfcb464a0db9ebc7b323ab2338d8f730de (patch)
tree4a2bace371ca6800e19e293a9681acc15a6369f4 /subcmds/branches.py
parent666d534636d262cbfd971509dd0f0be0cddb2e11 (diff)
downloadgit-repo-588142dfcb464a0db9ebc7b323ab2338d8f730de.tar.gz
git-repo-588142dfcb464a0db9ebc7b323ab2338d8f730de.zip
Provide detail print-out when not all projects of a branch are current.
When current is "split" (i.e. some projects are current while others are not): - Disable 'not in' printout (i.e. will print out all projects) - Disable printing of multiple projects on one line - Print current projects in green, non-current in white Since using color to differentiate current from non-current in "split" cases: - In non-split cases also print out project names in color (green for current white for non-current) Change-Id: Ia6b826612c708447cecfe5954dc767f7b2ea2ea7
Diffstat (limited to 'subcmds/branches.py')
-rw-r--r--subcmds/branches.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/subcmds/branches.py b/subcmds/branches.py
index f714c1e8d..2902684a4 100644
--- a/subcmds/branches.py
+++ b/subcmds/branches.py
@@ -47,6 +47,10 @@ class BranchInfo(object):
return self.current > 0
@property
+ def IsSplitCurrent(self):
+ return self.current != 0 and self.current != len(self.projects)
+
+ @property
def IsPublished(self):
return self.published > 0
@@ -139,10 +143,14 @@ is shown, then the branch appears in all projects.
if in_cnt < project_cnt:
fmt = out.write
paths = []
- if in_cnt < project_cnt - in_cnt:
+ non_cur_paths = []
+ if i.IsSplitCurrent or (in_cnt < project_cnt - in_cnt):
in_type = 'in'
for b in i.projects:
- paths.append(b.project.relpath)
+ if not i.IsSplitCurrent or b.current:
+ paths.append(b.project.relpath)
+ else:
+ non_cur_paths.append(b.project.relpath)
else:
fmt = out.notinproject
in_type = 'not in'
@@ -154,13 +162,19 @@ is shown, then the branch appears in all projects.
paths.append(p.relpath)
s = ' %s %s' % (in_type, ', '.join(paths))
- if width + 7 + len(s) < 80:
+ if not i.IsSplitCurrent and (width + 7 + len(s) < 80):
+ fmt = out.current if i.IsCurrent else fmt
fmt(s)
else:
fmt(' %s:' % in_type)
+ fmt = out.current if i.IsCurrent else out.write
for p in paths:
out.nl()
fmt(width*' ' + ' %s' % p)
+ fmt = out.write
+ for p in non_cur_paths:
+ out.nl()
+ fmt(width*' ' + ' %s' % p)
else:
out.write(' in all projects')
out.nl()