patman: Cache the CC list from MakeCcFile() for use in ShowActions()
Currently we go through and generate the CC list for patches twice. This gets slow when (in a future CL) we add a call to get_maintainer.pl on Linux. Instead of doing things twice, just cache the CC list when it is first generated. Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
d96ef37df7
commit
d94566a111
@ -140,14 +140,16 @@ else:
|
||||
options.count + options.start):
|
||||
ok = False
|
||||
|
||||
cc_file = series.MakeCcFile(options.process_tags)
|
||||
|
||||
# Email the patches out (giving the user time to check / cancel)
|
||||
cmd = ''
|
||||
if ok or options.ignore_errors:
|
||||
cc_file = series.MakeCcFile(options.process_tags)
|
||||
cmd = gitutil.EmailPatches(series, cover_fname, args,
|
||||
options.dry_run, cc_file)
|
||||
os.remove(cc_file)
|
||||
|
||||
# For a dry run, just show our actions as a sanity check
|
||||
if options.dry_run:
|
||||
series.ShowActions(args, cmd, options.process_tags)
|
||||
|
||||
os.remove(cc_file)
|
||||
|
@ -46,6 +46,11 @@ class Series(dict):
|
||||
self.notes = []
|
||||
self.changes = {}
|
||||
|
||||
# Written in MakeCcFile()
|
||||
# key: name of patch file
|
||||
# value: list of email addresses
|
||||
self._generated_cc = {}
|
||||
|
||||
# These make us more like a dictionary
|
||||
def __setattr__(self, name, value):
|
||||
self[name] = value
|
||||
@ -109,10 +114,7 @@ class Series(dict):
|
||||
for upto in range(len(args)):
|
||||
commit = self.commits[upto]
|
||||
print col.Color(col.GREEN, ' %s' % args[upto])
|
||||
cc_list = []
|
||||
if process_tags:
|
||||
cc_list += gitutil.BuildEmailList(commit.tags)
|
||||
cc_list += gitutil.BuildEmailList(commit.cc_list)
|
||||
cc_list = list(self._generated_cc[commit.patch])
|
||||
|
||||
# Skip items in To list
|
||||
if 'to' in self:
|
||||
@ -202,6 +204,8 @@ class Series(dict):
|
||||
def MakeCcFile(self, process_tags):
|
||||
"""Make a cc file for us to use for per-commit Cc automation
|
||||
|
||||
Also stores in self._generated_cc to make ShowActions() faster.
|
||||
|
||||
Args:
|
||||
process_tags: Process tags as if they were aliases
|
||||
Return:
|
||||
@ -216,6 +220,7 @@ class Series(dict):
|
||||
list += gitutil.BuildEmailList(commit.tags)
|
||||
list += gitutil.BuildEmailList(commit.cc_list)
|
||||
print >>fd, commit.patch, ', '.join(list)
|
||||
self._generated_cc[commit.patch] = list
|
||||
|
||||
fd.close()
|
||||
return fname
|
||||
|
Loading…
Reference in New Issue
Block a user