|
@@ -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.
|
|
|
|