Rev 65: Implement get_ancestry properly. in http://people.samba.org/bzr/jelmer/bzr-git/trunk
Jelmer Vernooij
jelmer at samba.org
Sat Jul 26 17:27:42 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-git/trunk
------------------------------------------------------------
revno: 65
revision-id: jelmer at samba.org-20080726153741-hkexn461eiqepxht
parent: jelmer at samba.org-20080726153041-h1xj8ufk0n0gz8jl
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-07-26 17:37:41 +0200
message:
Implement get_ancestry properly.
modified:
git_repository.py git_repository.py-20071108234408-ygidvy5hviixghsd-2
tests/test_git_repository.py test_git_repository.-20071108234408-ygidvy5hviixghsd-5
=== modified file 'git_repository.py'
--- a/git_repository.py 2008-07-26 15:30:20 +0000
+++ b/git_repository.py 2008-07-26 15:37:41 +0000
@@ -92,12 +92,17 @@
return False
def get_ancestry(self, revision_id):
- param = [ids.convert_revision_id_bzr_to_git(revision_id)]
- git_ancestry = self._git.get_ancestry(param)
- # print "fetched ancestry:", param
- return [None] + [
- ids.convert_revision_id_git_to_bzr(git_id)
- for git_id in git_ancestry]
+ revision_id = revision.ensure_null(revision_id)
+ ret = []
+ if revision_id != revision.NULL_REVISION:
+ skip = 0
+ max_count = 1000
+ cms = None
+ while cms != []:
+ cms = self._git.commits(ids.convert_revision_id_bzr_to_git(revision_id), max_count=max_count, skip=skip)
+ skip += max_count
+ ret += [ids.convert_revision_id_git_to_bzr(cm.id) for cm in cms]
+ return [None] + ret
def get_signature_text(self, revision_id):
raise errors.NoSuchRevision(self, revision_id)
=== modified file 'tests/test_git_repository.py'
--- a/tests/test_git_repository.py 2008-07-26 13:55:40 +0000
+++ b/tests/test_git_repository.py 2008-07-26 15:37:41 +0000
@@ -128,6 +128,9 @@
def test_has_signature_for_revision_id(self):
self.assertEquals(False, self.git_repo.has_signature_for_revision_id(revision.NULL_REVISION))
+ def test_get_ancestry_null(self):
+ self.assertEquals([None], self.git_repo.get_ancestry(revision.NULL_REVISION))
+
def assertIsNullInventory(self, inv):
self.assertEqual(inv.root, None)
self.assertEqual(inv.revision_id, revision.NULL_REVISION)
More information about the bazaar-commits
mailing list