diff options
| author | Doug Anderson <dianders@chromium.org> | 2012-12-03 14:40:42 +0000 | 
|---|---|---|
| committer | Simon Glass <sjg@chromium.org> | 2013-01-31 15:23:39 -0800 | 
| commit | d94566a1115d35f87db793d2daaa79823528937c (patch) | |
| tree | 26cba53979275ad5e15661c8540ac188ed081a88 | |
| parent | d96ef37df78eac5c636866d8f226991a5d96e6bb (diff) | |
| download | olio-uboot-2014.01-d94566a1115d35f87db793d2daaa79823528937c.tar.xz olio-uboot-2014.01-d94566a1115d35f87db793d2daaa79823528937c.zip | |
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 cfe06d082..de8314a16 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 d2971f489..ad8288d3c 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 |