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