def test__write_inventory(self): # The private interface _write_inventory is currently used by transform. tree = self.make_branch_and_tree('.') # if we write write an inventory then do a walkdirs we should get back # missing entries, and actual, and unknowns as appropriate. self.build_tree(['present', 'unknown']) inventory = Inventory(tree.get_root_id()) inventory.add_path('missing', 'file', 'missing-id') inventory.add_path('present', 'file', 'present-id') # there is no point in being able to write an inventory to an unlocked # tree object - its a low level api not a convenience api. tree.lock_write() tree._write_inventory(inventory) tree.unlock() tree.lock_read() try: present_stat = os.lstat('present') unknown_stat = os.lstat('unknown') expected_results = [ (('', tree.get_root_id()), [('missing', 'missing', 'unknown', None, 'missing-id', 'file'), ('present', 'present', 'file', present_stat, 'present-id', 'file'), ('unknown', 'unknown', 'file', unknown_stat, None, None), ] )] self.assertEqual(expected_results, list(tree.walkdirs())) finally: tree.unlock()
def test__write_inventory(self): # The private interface _write_inventory is currently used by transform. tree = self.make_branch_and_tree('.') # if we write write an inventory then do a walkdirs we should get back # missing entries, and actual, and unknowns as appropriate. self.build_tree(['present', 'unknown']) inventory = Inventory(tree.get_root_id()) inventory.add_path('missing', 'file', 'missing-id') inventory.add_path('present', 'file', 'present-id') # there is no point in being able to write an inventory to an unlocked # tree object - its a low level api not a convenience api. tree.lock_write() tree._write_inventory(inventory) tree.unlock() tree.lock_read() try: present_stat = os.lstat('present') unknown_stat = os.lstat('unknown') expected_results = [(('', tree.get_root_id()), [ ('missing', 'missing', 'unknown', None, 'missing-id', 'file'), ('present', 'present', 'file', present_stat, 'present-id', 'file'), ('unknown', 'unknown', 'file', unknown_stat, None, None), ])] self.assertEqual(expected_results, list(tree.walkdirs())) finally: tree.unlock()
def test_text_from_ghost_revision(self): repo = self.make_repository('text-from-ghost') inv = Inventory(revision_id='final-revid') inv.root.revision = 'root-revid' ie = inv.add_path('bla', 'file', 'myfileid') ie.revision = 'ghostrevid' ie.text_size = 42 ie.text_sha1 = "bee68c8acd989f5f1765b4660695275948bf5c00" rev = bzrlib.revision.Revision(timestamp=0, timezone=None, committer="Foo Bar <*****@*****.**>", message="Message", revision_id='final-revid') repo.lock_write() try: repo.start_write_group() try: repo.add_revision('final-revid', rev, inv) try: repo.texts.add_lines(('myfileid', 'ghostrevid'), (('myfileid', 'ghost-text-parent'), ), ["line1\n", "line2\n"]) except errors.RevisionNotPresent: raise TestSkipped("text ghost parents not supported") if repo.supports_rich_root(): root_id = inv.root.file_id repo.texts.add_lines((inv.root.file_id, inv.root.revision), [], []) finally: repo.commit_write_group() finally: repo.unlock() repo.reconcile(thorough=True)
def test_text_from_ghost_revision(self): repo = self.make_repository('text-from-ghost') inv = Inventory(revision_id='final-revid') inv.root.revision = 'root-revid' ie = inv.add_path('bla', 'file', 'myfileid') ie.revision = 'ghostrevid' ie.text_size = 42 ie.text_sha1 = "bee68c8acd989f5f1765b4660695275948bf5c00" rev = bzrlib.revision.Revision(timestamp=0, timezone=None, committer="Foo Bar <*****@*****.**>", message="Message", revision_id='final-revid') repo.lock_write() try: repo.start_write_group() try: repo.add_revision('final-revid', rev, inv) try: repo.texts.add_lines(('myfileid', 'ghostrevid'), (('myfileid', 'ghost-text-parent'),), ["line1\n", "line2\n"]) except errors.RevisionNotPresent: raise TestSkipped("text ghost parents not supported") if repo.supports_rich_root(): root_id = inv.root.file_id repo.texts.add_lines((inv.root.file_id, inv.root.revision), [], []) finally: repo.commit_write_group() finally: repo.unlock() repo.reconcile(thorough=True)