Rev 45: Update to bzr 1.6b3. in http://people.ubuntu.com/~robertc/baz2.0/plugins/search/trunk

Robert Collins robertc at robertcollins.net
Sun Jun 29 23:33:09 BST 2008


At http://people.ubuntu.com/~robertc/baz2.0/plugins/search/trunk

------------------------------------------------------------
revno: 45
revision-id: robertc at robertcollins.net-20080629223307-wa3i8yi04sd2ay8e
parent: robertc at robertcollins.net-20080628072210-f0je2oqv8j8qqcrd
committer: Robert Collins <robertc at robertcollins.net>
branch nick: trunk
timestamp: Mon 2008-06-30 08:33:07 +1000
message:
  Update to bzr 1.6b3.
modified:
  NEWS                           news-20080608052041-z5bahsl8kwl0uf4x-2
  index.py                       index.py-20080608055509-hnimeek7q8tctkqf-2
  inventory.py                   inventory.py-20080614043027-u57i4xjlc5ginuft-1
  setup.py                       setup.py-20080608052041-z5bahsl8kwl0uf4x-6
  tests/test_index.py            test_index.py-20080608055509-hnimeek7q8tctkqf-4
  tests/test_inventory.py        test_inventory.py-20080614043027-u57i4xjlc5ginuft-2
=== modified file 'NEWS'
--- a/NEWS	2008-06-21 13:03:01 +0000
+++ b/NEWS	2008-06-29 22:33:07 +0000
@@ -11,6 +11,9 @@
   
   CHANGES:
 
+    * Requires bzr 1.6b3. There is a new pre-1.6 branch of bzr-search for
+      users not using bzr 1.6b3 or later. (Robert Collins)
+
   FEATURES:
 
     * New command ``index`` to create a search index for a branch. This

=== modified file 'index.py'
--- a/index.py	2008-06-28 07:22:10 +0000
+++ b/index.py	2008-06-29 22:33:07 +0000
@@ -619,13 +619,17 @@
             for offset in range(groups):
                 bar.update("Extract revision paths", offset, groups)
                 inventory_group = order[offset * group_size:(offset + 1) * group_size]
-                lines_list = repository.get_inventory_weave().get_line_list(inventory_group)
+                group_keys = [(revid,) for revid in inventory_group]
+                stream = repository.inventories.get_record_stream(
+                    group_keys, 'unordered', True)
                 serializer = repository._serializer
                 # For VersionedFiles:
                 # for xml in repository._iter_inventory_xmls(inventory_group):
                 #     pass
-                for lines, revision_id in zip(lines_list, inventory_group):
-                    path_dict = paths_from_ids(lines, serializer,
+                for record in stream:
+                    bytes = record.get_bytes_as('fulltext')
+                    revision_id = record.key[-1]
+                    path_dict = paths_from_ids(bytes, serializer,
                         revision_ids[revision_id])
                     for file_id, path in path_dict.iteritems():
                         terms[(file_id, revision_id)] = [('p', '', path)]
@@ -681,13 +685,12 @@
                 continue
             # partitions the files by id, to avoid serious memory overload.
             file_versions = files.setdefault(item[1], set())
-            file_versions.update((item[2]))
-        transaction = repository.get_transaction()
-        for file_id, file_versions in files.iteritems():
-            vf = repository.weave_store.get_weave(file_id, transaction)
-            for diff, version in zip(vf.make_mpdiffs(file_versions),
-                file_versions):
-                document_key = ('f', file_id, version)
+            for file_version in item[2]:
+                file_versions.add((item[1], file_version))
+        for file_id, file_keys in files.iteritems():
+            for diff, key in zip(repository.texts.make_mpdiffs(file_keys),
+                file_keys):
+                document_key = ('f',) + key
                 for hunk in diff.hunks:
                     if type(hunk) == NewText:
                         for line in hunk.lines:

=== modified file 'inventory.py'
--- a/inventory.py	2008-06-21 13:03:01 +0000
+++ b/inventory.py	2008-06-29 22:33:07 +0000
@@ -59,6 +59,8 @@
     found_ids = {}
     id_paths = {}
     result = {}
+    if type(xml_inventory) == str:
+        xml_inventory = xml_inventory.splitlines()
     for line in xml_inventory:
         match = search(line)
         if match is None:

=== modified file 'setup.py'
--- a/setup.py	2008-06-21 13:03:01 +0000
+++ b/setup.py	2008-06-29 22:33:07 +0000
@@ -5,6 +5,7 @@
 
 bzr_plugin_version = (1, 6, 0, 'dev', 1)
 bzr_commands = ['index', 'search']
+bzr_minimum_version = (1, 6, 0)
 
 if __name__ == 'main':
     setup(name="bzr search",

=== modified file 'tests/test_index.py'
--- a/tests/test_index.py	2008-06-22 05:45:15 +0000
+++ b/tests/test_index.py	2008-06-29 22:33:07 +0000
@@ -228,8 +228,7 @@
         revid3 = tree.commit('')
         tree.lock_read()
         self.assertEqual('fulltext',
-            tree.branch.repository.weave_store.get_weave(
-                'an-id', None)._index.get_method(revid3))
+            tree.branch.repository.texts._index.get_method(('an-id', revid3)))
         tree.unlock()
         rev_index.index_revisions(tree.branch, [revid3])
         self.assertEqual(set([(revid3,)]), set(rev_index.indexed_revisions()))

=== modified file 'tests/test_inventory.py'
--- a/tests/test_inventory.py	2008-06-21 13:03:01 +0000
+++ b/tests/test_inventory.py	2008-06-29 22:33:07 +0000
@@ -23,6 +23,15 @@
 
 class TestPathFromInventory(TestCaseWithTransport):
 
+    def get_inventory(self, tree, revid):
+        tree.lock_read()
+        try:
+            inventories = tree.branch.repository.inventories
+            return inventories.get_record_stream([(revid,)], 'unordered',
+                True).next().get_bytes_as('fulltext')
+        finally:
+            tree.unlock()
+
     def test_paths_from_ids_basic(self):
         tree = self.make_branch_and_tree('foo')
         t = self.get_transport('foo')
@@ -34,12 +43,7 @@
         tree.add(['subdir', 'subdir/nested-dir', 'subdir/nested-dir/the file'],
             ['3dir', '2dir', '1file'])
         revid = tree.commit('first post')
-        tree.lock_read()
-        try:
-            inventories = tree.branch.repository.get_inventory_weave()
-            xml = inventories.get_lines(revid)
-        finally:
-            tree.unlock()
+        xml = self.get_inventory(tree, revid)
         serializer = tree.branch.repository._serializer
         # All individually:
         self.assertEqual({'1file':'subdir/nested-dir/the file'},
@@ -71,12 +75,7 @@
         t.mkdir('subdir')
         tree.add(['subdir'], ['3dir'])
         revid = tree.commit('first post')
-        tree.lock_read()
-        try:
-            inventories = tree.branch.repository.get_inventory_weave()
-            xml = inventories.get_lines(revid)
-        finally:
-            tree.unlock()
+        xml = self.get_inventory(tree, revid)
         serializer = tree.branch.repository._serializer
         # All individually:
         self.assertEqual({'3dir':'subdir'},




More information about the bazaar-commits mailing list