|
@@ -56,10 +56,14 @@ def GetUpstream(git_dir, branch):
|
|
|
Returns:
|
|
|
Name of upstream branch (e.g. 'upstream/master') or None if none
|
|
|
"""
|
|
|
- remote = command.OutputOneLine('git', '--git-dir', git_dir, 'config',
|
|
|
- 'branch.%s.remote' % branch)
|
|
|
- merge = command.OutputOneLine('git', '--git-dir', git_dir, 'config',
|
|
|
- 'branch.%s.merge' % branch)
|
|
|
+ try:
|
|
|
+ remote = command.OutputOneLine('git', '--git-dir', git_dir, 'config',
|
|
|
+ 'branch.%s.remote' % branch)
|
|
|
+ merge = command.OutputOneLine('git', '--git-dir', git_dir, 'config',
|
|
|
+ 'branch.%s.merge' % branch)
|
|
|
+ except:
|
|
|
+ return None
|
|
|
+
|
|
|
if remote == '.':
|
|
|
return merge
|
|
|
elif remote and merge:
|
|
@@ -78,9 +82,11 @@ def GetRangeInBranch(git_dir, branch, include_upstream=False):
|
|
|
branch: Name of branch
|
|
|
Return:
|
|
|
Expression in the form 'upstream..branch' which can be used to
|
|
|
- access the commits.
|
|
|
+ access the commits. If the branch does not exist, returns None.
|
|
|
"""
|
|
|
upstream = GetUpstream(git_dir, branch)
|
|
|
+ if not upstream:
|
|
|
+ return None
|
|
|
return '%s%s..%s' % (upstream, '~' if include_upstream else '', branch)
|
|
|
|
|
|
def CountCommitsInBranch(git_dir, branch, include_upstream=False):
|
|
@@ -90,9 +96,12 @@ def CountCommitsInBranch(git_dir, branch, include_upstream=False):
|
|
|
git_dir: Directory containing git repo
|
|
|
branch: Name of branch
|
|
|
Return:
|
|
|
- Number of patches that exist on top of the branch
|
|
|
+ Number of patches that exist on top of the branch, or None if the
|
|
|
+ branch does not exist.
|
|
|
"""
|
|
|
range_expr = GetRangeInBranch(git_dir, branch, include_upstream)
|
|
|
+ if not range_expr:
|
|
|
+ return None
|
|
|
pipe = [['git', '--git-dir', git_dir, 'log', '--oneline', '--no-decorate',
|
|
|
range_expr],
|
|
|
['wc', '-l']]
|