diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/patman/patchstream.py | 36 | 
1 files changed, 29 insertions, 7 deletions
| diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py index 1e4a36f1d..bed921d06 100644 --- a/tools/patman/patchstream.py +++ b/tools/patman/patchstream.py @@ -237,7 +237,8 @@ class PatchStream:          # Detect the start of a new commit          elif commit_match:              self.CloseCommit() -            self.commit = commit.Commit(commit_match.group(1)[:7]) +            # TODO: We should store the whole hash, and just display a subset +            self.commit = commit.Commit(commit_match.group(1)[:8])          # Detect tags in the commit message          elif tag_match: @@ -334,26 +335,47 @@ class PatchStream:          self.Finalize() -def GetMetaData(start, count): +def GetMetaDataForList(commit_range, git_dir=None, count=None, +                       series = Series()):      """Reads out patch series metadata from the commits      This does a 'git log' on the relevant commits and pulls out the tags we      are interested in.      Args: -        start: Commit to start from: 0=HEAD, 1=next one, etc. -        count: Number of commits to list +        commit_range: Range of commits to count (e.g. 'HEAD..base') +        git_dir: Path to git repositiory (None to use default) +        count: Number of commits to list, or None for no limit +        series: Series object to add information into. By default a new series +            is started. +    Returns: +        A Series object containing information about the commits.      """ -    pipe = [['git', 'log', '--no-color', '--reverse', 'HEAD~%d' % start, -	'-n%d' % count]] +    params = ['git', 'log', '--no-color', '--reverse', commit_range] +    if count is not None: +        params[2:2] = ['-n%d' % count] +    if git_dir: +        params[1:1] = ['--git-dir', git_dir] +    pipe = [params]      stdout = command.RunPipe(pipe, capture=True).stdout -    series = Series()      ps = PatchStream(series, is_log=True)      for line in stdout.splitlines():          ps.ProcessLine(line)      ps.Finalize()      return series +def GetMetaData(start, count): +    """Reads out patch series metadata from the commits + +    This does a 'git log' on the relevant commits and pulls out the tags we +    are interested in. + +    Args: +        start: Commit to start from: 0=HEAD, 1=next one, etc. +        count: Number of commits to list +    """ +    return GetMetaDataForList('HEAD~%d' % start, None, count) +  def FixPatch(backup_dir, fname, series, commit):      """Fix up a patch file, by adding/removing as required. |