Rev 3572: MemoryTree.add(directory) will now create a directory node in the Transport in http://bzr.arbash-meinel.com/branches/bzr/1.7-dev/branch_builder

John Arbash Meinel john at arbash-meinel.com
Tue Jul 22 19:01:01 BST 2008


At http://bzr.arbash-meinel.com/branches/bzr/1.7-dev/branch_builder

------------------------------------------------------------
revno: 3572
revision-id: john at arbash-meinel.com-20080722175957-9gz0my3cvanggos8
parent: john at arbash-meinel.com-20080722173559-3o5pf3v21qlghppy
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: branch_builder
timestamp: Tue 2008-07-22 12:59:57 -0500
message:
  MemoryTree.add(directory) will now create a directory node in the Transport
-------------- next part --------------
=== modified file 'bzrlib/memorytree.py'
--- a/bzrlib/memorytree.py	2008-06-18 05:35:02 +0000
+++ b/bzrlib/memorytree.py	2008-07-22 17:59:57 +0000
@@ -59,6 +59,8 @@
                 self._inventory.add_path(f, kind=kind)
             else:
                 self._inventory.add_path(f, kind=kind, file_id=file_id)
+            if kind == 'directory' and f != '':
+                self._file_transport.mkdir(f)
 
     def basis_tree(self):
         """See Tree.basis_tree()."""

=== modified file 'bzrlib/tests/test_branchbuilder.py'
--- a/bzrlib/tests/test_branchbuilder.py	2008-07-22 17:35:59 +0000
+++ b/bzrlib/tests/test_branchbuilder.py	2008-07-22 17:59:57 +0000
@@ -142,6 +142,22 @@
         self.addCleanup(rev_tree.unlock)
         self.assertTreeShape([(u'', 'a-root-id', 'directory')], rev_tree)
 
+    def test_delete_directory(self):
+        builder = self.build_a_rev()
+        rev_id2 = builder.build_snapshot(None, 'B-id',
+            [('add', ('b', 'b-id', 'directory', None)),
+             ('add', ('b/c', 'c-id', 'file', 'foo\n')),
+             ('add', ('b/d', 'd-id', 'directory', None)),
+             ('add', ('b/d/e', 'e-id', 'file', 'eff\n')),
+            ])
+        rev_tree = builder.get_branch().repository.revision_tree('B-id')
+        self.assertTreeShape([(u'', 'a-root-id', 'directory'),
+                              (u'a', 'a-id', 'file'),
+                              (u'b', 'b-id', 'directory'),
+                              (u'b/c', 'c-id', 'file'),
+                              (u'b/d', 'd-id', 'directory'),
+                              (u'b/d/e', 'e-id', 'file')], rev_tree)
+
     def test_unknown_action(self):
         builder = self.build_a_rev()
         self.assertRaises(errors.UnknownBuildAction,

=== modified file 'bzrlib/tests/test_memorytree.py'
--- a/bzrlib/tests/test_memorytree.py	2007-11-21 23:42:50 +0000
+++ b/bzrlib/tests/test_memorytree.py	2008-07-22 17:59:57 +0000
@@ -101,7 +101,7 @@
         self.assertEqual('afile', tree.id2path(tree.path2id('afile')))
         self.assertEqual('adir', tree.id2path(tree.path2id('adir')))
         self.assertFalse(tree.has_filename('afile'))
-        self.assertFalse(tree.has_filename('adir'))
+        self.assertTrue(tree.has_filename('adir'))
         tree.unlock()
 
     def test_put_new_file(self):
@@ -125,6 +125,17 @@
         self.assertEqual('barshoom', tree.get_file('foo-id').read())
         tree.unlock()
 
+    def test_add_in_subdir(self):
+        branch = self.make_branch('branch')
+        tree = MemoryTree.create_on_branch(branch)
+        tree.lock_write()
+        self.addCleanup(tree.unlock)
+        tree.add(['', 'adir', 'adir/afile'], ['root-id', 'dir-id', 'file-id'],
+                 ['directory', 'directory', 'file'])
+        self.assertEqual('adir/afile', tree.id2path('file-id'))
+        self.assertEqual('adir', tree.id2path('dir-id'))
+        tree.put_file_bytes_non_atomic('file-id', 'barshoom')
+
     def test_commit_trivial(self):
         """Smoke test for commit on a MemoryTree.
 



More information about the bazaar-commits mailing list