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

Unified Diff: git_map_branches.py

Issue 554523003: Fix git-map-branches crashing on HEAD, and other minor quality-of-life (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: rebase Created 6 years, 3 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 | « no previous file | no next file » | 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 038142e00c570b9cbf615f07d220a037a7e4e263..350fed37a15551bbb5f54791dfb6f6df32921f52 100755
--- a/git_map_branches.py
+++ b/git_map_branches.py
@@ -32,9 +32,7 @@ from third_party import colorama
from third_party.colorama import Fore, Style
from git_common import current_branch, upstream, tags, get_branches_info
-from git_common import get_git_version, MIN_UPSTREAM_TRACK_GIT_VERSION
-
-import git_cl
+from git_common import get_git_version, MIN_UPSTREAM_TRACK_GIT_VERSION, hash_one
DEFAULT_SEPARATOR = ' ' * 4
@@ -141,11 +139,16 @@ class BranchMapper(object):
self.__parent_map[parent].append(branch)
self.__current_branch = current_branch()
- self.__current_hash = self.__branches_info[self.__current_branch].hash
+ self.__current_hash = hash_one('HEAD', short=True)
self.__tag_set = tags()
- for root in sorted(roots):
- self.__append_branch(root)
+ if roots:
+ for root in sorted(roots):
+ self.__append_branch(root)
+ else:
+ no_branches = OutputLine()
+ no_branches.append('No User Branches')
+ self.output.append(no_branches)
def __is_invalid_parent(self, parent):
return not parent or parent in self.__gone_branches
@@ -155,12 +158,12 @@ class BranchMapper(object):
color = Fore.RED
elif self.__is_invalid_parent(branch) or branch in self.__tag_set:
color = Fore.MAGENTA
- elif branch_hash == self.__current_hash:
+ elif self.__current_hash.startswith(branch_hash):
color = Fore.CYAN
else:
color = Fore.GREEN
- if branch_hash == self.__current_hash:
+ if self.__current_hash.startswith(branch_hash):
color += Style.BRIGHT
else:
color += Style.NORMAL
@@ -171,7 +174,10 @@ class BranchMapper(object):
"""Recurses through the tree structure and appends an OutputLine to the
OutputManager for each branch."""
branch_info = self.__branches_info[branch]
- branch_hash = branch_info.hash if branch_info else None
+ if branch_info:
+ branch_hash = branch_info.hash
+ else:
+ branch_hash = hash_one(branch, short=True)
line = OutputLine()
@@ -225,6 +231,7 @@ class BranchMapper(object):
# The Rietveld issue associated with the branch.
if self.verbosity >= 2:
+ import git_cl # avoid heavy import cost unless we need it
none_text = '' if self.__is_invalid_parent(branch) else 'None'
url = git_cl.Changelist(branchref=branch).GetIssueURL()
line.append(url or none_text, color=Fore.BLUE if url else Fore.WHITE)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698