diff options
Diffstat (limited to 'tools/patman')
| -rw-r--r-- | tools/patman/gitutil.py | 21 | ||||
| -rwxr-xr-x | tools/patman/patman.py | 2 | ||||
| -rw-r--r-- | tools/patman/series.py | 4 | 
3 files changed, 19 insertions, 8 deletions
| diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py index e31da1548..b7f673955 100644 --- a/tools/patman/gitutil.py +++ b/tools/patman/gitutil.py @@ -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']] diff --git a/tools/patman/patman.py b/tools/patman/patman.py index a8061a937..7a317c5c2 100755 --- a/tools/patman/patman.py +++ b/tools/patman/patman.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python  #  # Copyright (c) 2011 The Chromium OS Authors.  # diff --git a/tools/patman/series.py b/tools/patman/series.py index 783b3dd13..85ed31688 100644 --- a/tools/patman/series.py +++ b/tools/patman/series.py @@ -40,6 +40,7 @@ class Series(dict):          notes: List of lines in the notes          changes: (dict) List of changes for each version, The key is              the integer version number +        allow_overwrite: Allow tags to overwrite an existing tag      """      def __init__(self):          self.cc = [] @@ -49,6 +50,7 @@ class Series(dict):          self.cover = None          self.notes = []          self.changes = {} +        self.allow_overwrite = False          # Written in MakeCcFile()          #  key: name of patch file @@ -72,7 +74,7 @@ class Series(dict):          """          # If we already have it, then add to our list          name = name.replace('-', '_') -        if name in self: +        if name in self and not self.allow_overwrite:              values = value.split(',')              values = [str.strip() for str in values]              if type(self[name]) != type([]): |