[Pkg-bazaar-commits] ./bzr/unstable r151: experimental nested-inventory load support
mbp at sourcefrog.net
mbp at sourcefrog.net
Fri Apr 10 07:51:15 UTC 2009
------------------------------------------------------------
revno: 151
committer: mbp at sourcefrog.net
timestamp: Thu 2005-03-31 09:34:24 +1000
message:
experimental nested-inventory load support
modified:
bzrlib/commands.py
bzrlib/newinventory.py
-------------- next part --------------
=== modified file 'bzrlib/commands.py'
--- a/bzrlib/commands.py 2005-03-30 22:27:17 +0000
+++ b/bzrlib/commands.py 2005-03-30 23:34:24 +0000
@@ -378,6 +378,11 @@
import bzrlib.newinventory
inv = Branch('.').basis_tree().inventory
bzrlib.newinventory.write_inventory(inv, sys.stdout)
+
+
+def cmd_load_new_inventory():
+ import bzrlib.newinventory
+ bzrlib.newinventory.read_new_inventory(sys.stdin)
def cmd_dump_slacker_inventory():
=== modified file 'bzrlib/newinventory.py'
--- a/bzrlib/newinventory.py 2005-03-30 23:01:29 +0000
+++ b/bzrlib/newinventory.py 2005-03-30 23:34:24 +0000
@@ -93,8 +93,38 @@
for entry_name, ie in l:
descend(ie)
- f.write('</root-directory>\n')
+ f.write('</root_directory>\n')
f.write('</inventory>\n')
+def read_new_inventory(f):
+ from inventory import Inventory, InventoryEntry
+
+ def descend(parent_ie, el):
+ kind = el.tag
+ name = el.get('name')
+ file_id = el.get('id')
+ ie = InventoryEntry(file_id, name, el.tag)
+ parent_ie.children[name] = ie
+ inv._byid[file_id] = ie
+ if kind == 'directory':
+ for child_el in el:
+ descend(ie, child_el)
+ elif kind == 'file':
+ assert len(el) == 0
+ ie.text_id = el.get('text_id')
+ v = el.get('text_size')
+ ie.text_size = v and int(v)
+ ie.text_sha1 = el.get('text_sha1')
+ else:
+ bailout("unknown inventory entry %r" % kind)
+
+ inv_el = ElementTree().parse(f)
+ assert inv_el.tag == 'inventory'
+ root_el = inv_el[0]
+ assert root_el.tag == 'root_directory'
+
+ inv = Inventory()
+ for el in root_el:
+ descend(inv._root, el)
More information about the Pkg-bazaar-commits
mailing list