Rev 3152: ParentsProviders now provide tuples of parents, never lists (abentley) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Wed Jan 2 15:49:17 GMT 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3152
revision-id:pqm at pqm.ubuntu.com-20080102154906-hqiq6x2eammznjtg
parent: pqm at pqm.ubuntu.com-20080102124444-b366gbq5zk8ka3c4
parent: aaron.bentley at utoronto.ca-20080102053220-sli5860t8rq9dvdn
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-01-02 15:49:06 +0000
message:
  ParentsProviders now provide tuples of parents, never lists (abentley)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
  bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
    ------------------------------------------------------------
    revno: 3146.1.2
    revision-id:aaron.bentley at utoronto.ca-20080102053220-sli5860t8rq9dvdn
    parent: aaron.bentley at utoronto.ca-20071230021310-yl7qy9u957ne2u9j
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: parents-provider-fix
    timestamp: Wed 2008-01-02 00:32:20 -0500
    message:
      ParentsProviders now provide tuples of parents, never lists
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
=== modified file 'NEWS'
--- a/NEWS	2008-01-02 08:16:23 +0000
+++ b/NEWS	2008-01-02 15:49:06 +0000
@@ -120,6 +120,8 @@
     * Help topics can now be loaded from files. 
       (Ian Clatworthy, Alexander Belchenko)
 
+    * get_parent_map now always provides tuples as its output.  (Aaron Bentley)
+
     * Parent Providers should now implement ``get_parent_map`` returning a
       dictionary instead of ``get_parents`` returning a list.
       ``get_parents`` is now considered deprecated.  (John Arbash Meinel)

=== modified file 'bzrlib/repofmt/knitrepo.py'
--- a/bzrlib/repofmt/knitrepo.py	2007-12-30 02:13:10 +0000
+++ b/bzrlib/repofmt/knitrepo.py	2008-01-02 05:32:20 +0000
@@ -70,15 +70,16 @@
         parent_map = {}
         for revision_id in keys:
             if revision_id == _mod_revision.NULL_REVISION:
-                parent_map[revision_id] = []
+                parent_map[revision_id] = ()
             else:
                 try:
-                    parents = self._knit.get_parents_with_ghosts(revision_id)
+                    parents = tuple(
+                        self._knit.get_parents_with_ghosts(revision_id))
                 except errors.RevisionNotPresent:
                     continue
                 else:
                     if len(parents) == 0:
-                        parents = [_mod_revision.NULL_REVISION]
+                        parents = (_mod_revision.NULL_REVISION,)
                 parent_map[revision_id] = parents
         return parent_map
 

=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2007-12-19 08:12:34 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2008-01-02 05:32:20 +0000
@@ -1912,7 +1912,7 @@
         keys = set(keys)
         if _mod_revision.NULL_REVISION in keys:
             keys.discard(_mod_revision.NULL_REVISION)
-            found_parents = {_mod_revision.NULL_REVISION:[]}
+            found_parents = {_mod_revision.NULL_REVISION:()}
         else:
             found_parents = {}
         search_keys = set((revision_id,) for revision_id in keys)

=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2007-12-25 06:02:32 +0000
+++ b/bzrlib/repository.py	2008-01-02 15:49:06 +0000
@@ -1697,15 +1697,17 @@
         parent_map = {}
         for revision_id in keys:
             if revision_id == _mod_revision.NULL_REVISION:
-                parent_map[revision_id] = []
+                parent_map[revision_id] = ()
             else:
                 try:
-                    parent_ids = self.get_revision(revision_id).parent_ids
+                    parent_id_list = self.get_revision(revision_id).parent_ids
                 except errors.NoSuchRevision:
                     pass
                 else:
-                    if len(parent_ids) == 0:
-                        parent_ids = [_mod_revision.NULL_REVISION]
+                    if len(parent_id_list) == 0:
+                        parent_ids = (_mod_revision.NULL_REVISION,)
+                    else:
+                        parent_ids = tuple(parent_id_list)
                     parent_map[revision_id] = parent_ids
         return parent_map
 

=== modified file 'bzrlib/tests/repository_implementations/test_repository.py'
--- a/bzrlib/tests/repository_implementations/test_repository.py	2008-01-02 08:23:44 +0000
+++ b/bzrlib/tests/repository_implementations/test_repository.py	2008-01-02 15:49:06 +0000
@@ -536,7 +536,18 @@
         graph = tree.branch.repository.get_graph()
         parents = graph.get_parent_map(['ghost', 'rev2'])
         self.assertTrue('ghost' not in parents)
-        self.assertEqual(tuple(parents['rev2']), ('rev1', 'ghost'))
+        self.assertEqual(parents['rev2'], ('rev1', 'ghost'))
+
+    def test_parent_map_type(self):
+        tree = self.make_branch_and_tree('here')
+        tree.lock_write()
+        self.addCleanup(tree.unlock)
+        tree.commit('initial commit', rev_id='rev1')
+        tree.commit('next commit', rev_id='rev2')
+        graph = tree.branch.repository.get_graph()
+        parents = graph.get_parent_map([NULL_REVISION, 'rev1', 'rev2'])
+        for value in parents.values():
+            self.assertIsInstance(value, tuple)
 
     def test_implements_revision_graph_can_have_wrong_parents(self):
         """All repositories should implement




More information about the bazaar-commits mailing list