summaryrefslogtreecommitdiff
path: root/coverage/sqldata.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-09-27 11:40:39 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-09-27 16:41:26 -0400
commit0a9406d915410038707adcf08f10a2668fb52d1d (patch)
treea889e32dfb6e0d6a5fa3467572dfcadc1e59f196 /coverage/sqldata.py
parenta508264b7c8becad25a5c2dda1a034222658716f (diff)
downloadpython-coveragepy-git-0a9406d915410038707adcf08f10a2668fb52d1d.tar.gz
Faster combining
Diffstat (limited to 'coverage/sqldata.py')
-rw-r--r--coverage/sqldata.py20
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: