diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2018-09-27 11:40:39 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2018-09-27 16:41:26 -0400 |
commit | 0a9406d915410038707adcf08f10a2668fb52d1d (patch) | |
tree | a889e32dfb6e0d6a5fa3467572dfcadc1e59f196 /coverage/sqldata.py | |
parent | a508264b7c8becad25a5c2dda1a034222658716f (diff) | |
download | python-coveragepy-git-0a9406d915410038707adcf08f10a2668fb52d1d.tar.gz |
Faster combining
Diffstat (limited to 'coverage/sqldata.py')
-rw-r--r-- | coverage/sqldata.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/coverage/sqldata.py b/coverage/sqldata.py index e9ccbede..a5e84aeb 100644 --- a/coverage/sqldata.py +++ b/coverage/sqldata.py @@ -331,15 +331,19 @@ class CoverageSqliteData(SimpleReprMixin): # See what we had already measured, for accurate conflict reporting. this_measured = self.measured_files() + other_files = set() + # lines if other_data._has_lines: for context in other_data.measured_contexts(): self.set_context(context) for filename in other_data.measured_files(): lines = set(other_data.lines(filename, context=context)) - filename = aliases.map(filename) - lines.update(self.lines(filename, context=context) or ()) - self.add_lines({filename: lines}) + if lines: + other_files.add(filename) + filename = aliases.map(filename) + lines.update(self.lines(filename, context=context) or ()) + self.add_lines({filename: lines}) # arcs if other_data._has_arcs: @@ -347,12 +351,14 @@ class CoverageSqliteData(SimpleReprMixin): self.set_context(context) for filename in other_data.measured_files(): arcs = set(other_data.arcs(filename, context=context)) - filename = aliases.map(filename) - arcs.update(self.arcs(filename, context=context) or ()) - self.add_arcs({filename: arcs}) + if arcs: + other_files.add(filename) + filename = aliases.map(filename) + arcs.update(self.arcs(filename, context=context) or ()) + self.add_arcs({filename: arcs}) # file_tracers - for filename in other_data.measured_files(): + for filename in other_files: other_plugin = other_data.file_tracer(filename) filename = aliases.map(filename) if filename in this_measured: |