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