| 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)
|
|
|