/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tools/riodemo.py

  • Committer: Robert Collins
  • Date: 2005-10-16 22:31:25 UTC
  • mto: This revision was merged to the branch mainline in revision 1458.
  • Revision ID: robertc@lifelesslap.robertcollins.net-20051016223125-26d4401cb94b7b82
Branch.relpath has been moved to WorkingTree.relpath.

WorkingTree no no longer takes an inventory, rather it takes an optional branch
parameter, and if None is given will open the branch at basedir implicitly.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
 
3
 
 
4
 
# \subsection{Example usage}
5
 
6
 
# \textbf{XXX:} Move these to object serialization code. 
7
 
 
8
 
def write_revision(writer, revision):
9
 
    s = Stanza(revision=revision.revision_id,
10
 
               committer=revision.committer, 
11
 
               timezone=long(revision.timezone),
12
 
               timestamp=long(revision.timestamp),
13
 
               inventory_sha1=revision.inventory_sha1,
14
 
               message=revision.message)
15
 
    for parent_id in revision.parent_ids:
16
 
        s.add('parent', parent_id)
17
 
    for prop_name, prop_value in revision.properties.items():
18
 
        s.add(prop_name, prop_value)
19
 
    writer.write_stanza(s)
20
 
 
21
 
def write_inventory(writer, inventory):
22
 
    s = Stanza(inventory_version=7)
23
 
    writer.write_stanza(s)
24
 
 
25
 
    for path, ie in inventory.iter_entries():
26
 
        s = Stanza()
27
 
        s.add(ie.kind, ie.file_id)
28
 
        for attr in ['name', 'parent_id', 'revision', \
29
 
                     'text_sha1', 'text_size', 'executable', \
30
 
                     'symlink_target', \
31
 
                     ]:
32
 
            attr_val = getattr(ie, attr, None)
33
 
            if attr == 'executable' and attr_val == 0:
34
 
                continue
35
 
            if attr == 'parent_id' and attr_val == 'TREE_ROOT':
36
 
                continue
37
 
            if attr_val is not None:
38
 
                s.add(attr, attr_val)
39
 
        writer.write_stanza(s)
40
 
 
41
 
 
42
 
def read_inventory(inv_file):
43
 
    """Read inventory object from rio formatted inventory file"""
44
 
    from bzrlib.inventory import Inventory, InventoryFile
45
 
    s = read_stanza(inv_file)
46
 
    assert s['inventory_version'] == 7
47
 
    inv = Inventory()
48
 
    for s in read_stanzas(inv_file):
49
 
        kind, file_id = s.items[0]
50
 
        parent_id = None
51
 
        if 'parent_id' in s:
52
 
            parent_id = s['parent_id']
53
 
        if kind == 'file':
54
 
            ie = InventoryFile(file_id, s['name'], parent_id)
55
 
            ie.text_sha1 = s['text_sha1']
56
 
            ie.text_size = s['text_size']
57
 
        else:
58
 
            raise NotImplementedError()
59
 
        inv.add(ie)
60
 
    return inv