Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Unified Diff: git_map_branches.py

Issue 184253003: Add git-reup and friends (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@freeze_thaw
Patch Set: fix pylint Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « git_map.py ('k') | git_mark_merge_base.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: git_map_branches.py
diff --git a/git_map_branches.py b/git_map_branches.py
index fc6c8cec46f907df097fa5437820a7f6c805c50b..73517903c2a3096e031201fe656f7e4bf68945c8 100755
--- a/git_map_branches.py
+++ b/git_map_branches.py
@@ -19,9 +19,11 @@ Branches are colorized as follows:
* Note that multiple branches may be Cyan, if they are all on the same
commit, and you have that commit checked out.
* Green - a local branch
- * Magenta - a placeholder for the '{NO UPSTREAM}' "branch". If you have
- local branches which do not track any upstream, then you will see this.
+ * Magenta - a tag
+ * Magenta '{NO UPSTREAM}' - If you have local branches which do not track any
+ upstream, then you will see this.
"""
+
import collections
import sys
@@ -29,15 +31,14 @@ from third_party import colorama
from third_party.colorama import Fore, Style
from git_common import current_branch, branches, upstream, hash_one, hash_multi
+from git_common import tags
NO_UPSTREAM = '{NO UPSTREAM}'
-def print_branch(cur, cur_hash, branch, branch_hashes, par_map, branch_map,
- depth=0):
- branch_hash = branch_hashes[branch]
+def color_for_branch(branch, branch_hash, cur_hash, tag_set):
if branch.startswith('origin'):
color = Fore.RED
- elif branch == NO_UPSTREAM:
+ elif branch == NO_UPSTREAM or branch in tag_set:
color = Fore.MAGENTA
elif branch_hash == cur_hash:
color = Fore.CYAN
@@ -49,6 +50,15 @@ def print_branch(cur, cur_hash, branch, branch_hashes, par_map, branch_map,
else:
color += Style.NORMAL
+ return color
+
+
+def print_branch(cur, cur_hash, branch, branch_hashes, par_map, branch_map,
+ tag_set, depth=0):
+ branch_hash = branch_hashes[branch]
+
+ color = color_for_branch(branch, branch_hash, cur_hash, tag_set)
+
suffix = ''
if cur == 'HEAD':
if branch_hash == cur_hash:
@@ -59,7 +69,7 @@ def print_branch(cur, cur_hash, branch, branch_hashes, par_map, branch_map,
print color + " "*depth + branch + suffix
for child in par_map.pop(branch, ()):
print_branch(cur, cur_hash, child, branch_hashes, par_map, branch_map,
- depth=depth+1)
+ tag_set, depth=depth+1)
def main(argv):
@@ -77,13 +87,14 @@ def main(argv):
current_hash = hashes[0]
par_hashes = {k: hashes[i+1] for i, k in enumerate(branch_map.iterkeys())}
par_hashes[NO_UPSTREAM] = 0
+ tag_set = tags()
while par_map:
for parent in par_map:
if parent not in branch_map:
if parent not in par_hashes:
par_hashes[parent] = hash_one(parent)
print_branch(current, current_hash, parent, par_hashes, par_map,
- branch_map)
+ branch_map, tag_set)
break
« no previous file with comments | « git_map.py ('k') | git_mark_merge_base.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698