~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to mpregen

  • Committer: Aaron Bentley
  • Date: 2007-04-11 17:50:52 UTC
  • mto: (2520.4.1 bzr.mpbundle)
  • mto: This revision was merged to the branch mainline in revision 2631.
  • Revision ID: abentley@panoramicfeedback.com-20070411175052-uvfmwfyaqg7muqf2
More control over snapshotting, disable caching for inventory

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
bt = wt.branch.repository.revision_tree(wt.last_revision())
22
22
file_id = wt.path2id(path)
23
 
file_weave = bt.get_weave(file_id)
 
23
file_weave = wt.branch.repository.get_inventory_weave()
 
24
#file_weave = bt.get_weave(file_id)
24
25
file_weave.enable_cache()
25
 
vf = MultiVersionedFile()
26
 
ancestry = set(file_weave.get_ancestry([bt.inventory[file_id].revision]))
27
 
files = {}
28
 
for version_id in ancestry:
29
 
    lines = [a + ' ' + l for a, l in file_weave.annotate_iter(version_id)]
30
 
    files[version_id] = lines
 
26
revisions = set(file_weave.versions())
 
27
ft_set = set(r for r in revisions if file_weave._index.get_method(r)
 
28
             == 'fulltext')
 
29
vf = MultiVersionedFile(None)
 
30
#files = {}
 
31
#for version_id in revisions:
 
32
#    lines = [a + ' ' + l for a, l in file_weave.annotate_iter(version_id)]
 
33
#    files[version_id] = lines
31
34
#files = dict(izip(ancestry, file_weave.get_line_list(ancestry)))
32
 
while len(ancestry) > 0:
 
35
total = len(revisions)
 
36
while len(revisions) > 0:
33
37
    added = set()
34
 
    for revision in ancestry:
 
38
    for revision in revisions:
35
39
        parents = file_weave.get_parents(revision)
36
40
        if [p for p in parents if p not in vf._diffs] != []:
37
41
            continue
38
 
        lines = files[revision]
39
 
        vf.add_version(lines, revision, parents)
 
42
        lines = file_weave.get_lines(revision)
 
43
        vf.add_version(lines, revision, parents,
 
44
                       force_snapshot=(revision in ft_set))
40
45
        added.add(revision)
41
 
    ancestry = [r for r in ancestry if r not in added]
 
46
        vf.clear_cache()
 
47
    revisions = [r for r in revisions if r not in added]
 
48
    print >> sys.stderr, "%.1f %%" % ((((total - len(revisions)) * 100.0)
 
49
                                       / total))
 
50
print >> sys.stderr, file_weave
 
51
print >> sys.stderr, "%d fulltexts" % len(ft_set)
 
52
print >> sys.stderr, "%d snapshots" % len(vf._snapshots)
42
53
vf.clear_cache()
43
54
if False:
44
55
    for revision_id in file_weave.get_ancestry(
49
60
                file_weave.get_lines(revision_id))
50
61
            open(revision_id + '.new', 'wb').writelines(
51
62
                vf.get_line_list(revision_id)[0])
52
 
if False:
 
63
if True:
53
64
    revisions = file_weave.get_ancestry(
54
65
            [bt.inventory[file_id].revision])[-1:]
55
66
    from bzrlib.lsprof import profile
57
68
    stats.sort()
58
69
    stats.pprint()
59
70
    start = time.clock()
 
71
    print revisions
60
72
    for x in range(1000):
61
73
        vf.clear_cache()
62
74
        vf.get_line_list(revisions)
65
77
    for x in range(1000):
66
78
        file_weave.get_line_list(revisions)
67
79
    print time.clock() - start
68
 
if True:
69
 
    revisions = file_weave.get_ancestry(
70
 
            [bt.inventory[file_id].revision])
71
 
    print >> sys.stderr, file_weave
72
 
 
73
 
    ft_count = sum(1 for r in revisions if file_weave._index.get_method(r)
74
 
                   == 'fulltext')
75
 
    print >> sys.stderr, "%d fulltexts" % ft_count
76
 
    s_count = sum(1 for r in revisions if vf._snapshots[r])
77
 
    print >> sys.stderr, "%d snapshots" % s_count
 
80
if False:
 
81
    revisions = file_weave.versions()
78
82
 
79
83
    for revision, diff in vf._diffs.iteritems():
80
84
        sio = StringIO()