~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/weave.py

  • Committer: Martin Pool
  • Date: 2005-07-17 18:40:23 UTC
  • Revision ID: mbp@sourcefrog.net-20050717184020-ac644a35b0d645d5
- experiment with making Weave._extract() return a list, not a generator - slightly faster

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
# with intset (r926) 2000 versions in 93s !!!
26
26
# better to just use plain sets.
27
27
 
 
28
# making _extract build and return a list, rather than being a generator
 
29
# takes 37.94s
 
30
 
28
31
# TODO: Perhaps have copy method for Weave instances?
29
32
 
30
33
# XXX: If we do weaves this way, will a merge still behave the same
365
368
 
366
369
        isactive = None
367
370
 
 
371
        result = []
 
372
 
368
373
        WFE = WeaveFormatError
369
374
 
370
375
        for l in self._l:
391
396
                if isactive is None:
392
397
                    isactive = (not dset) and istack and (istack[-1] in included)
393
398
                if isactive:
394
 
                    yield istack[-1], lineno, l
 
399
                    result.append((istack[-1], lineno, l))
395
400
            lineno += 1
396
401
 
397
402
        if istack:
401
406
            raise WFE("unclosed deletion blocks at end of weave",
402
407
                                   dset)
403
408
 
 
409
        return result
 
410
    
 
411
 
404
412
 
405
413
    def get_iter(self, version):
406
414
        """Yield lines for the specified version."""