diff options
author | Doug Anderson <dianders@chromium.org> | 2012-12-03 14:40:42 (GMT) |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2013-01-31 23:23:39 (GMT) |
commit | d94566a1115d35f87db793d2daaa79823528937c (patch) | |
tree | 26cba53979275ad5e15661c8540ac188ed081a88 | |
parent | d96ef37df78eac5c636866d8f226991a5d96e6bb (diff) | |
download | u-boot-d94566a1115d35f87db793d2daaa79823528937c.tar.xz |
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>
-rwxr-xr-x | tools/patman/patman.py | 6 | ||||
-rw-r--r-- | tools/patman/series.py | 13 |
2 files changed, 13 insertions, 6 deletions
diff --git a/tools/patman/patman.py b/tools/patman/patman.py index cfe06d0..de8314a 100755 --- a/tools/patman/patman.py +++ b/tools/patman/patman.py @@ -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) diff --git a/tools/patman/series.py b/tools/patman/series.py index d2971f4..ad8288d 100644 --- a/tools/patman/series.py +++ b/tools/patman/series.py @@ -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 |