Rev 88: Fix RevisionTree.get_file_text(). in http://people.samba.org/bzr/jelmer/bzr-git/trunk
Jelmer Vernooij
jelmer at samba.org
Sat Jul 26 19:58:29 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-git/trunk
------------------------------------------------------------
revno: 88
revision-id: jelmer at samba.org-20080726185829-y9mgj1pzeyrpmdh3
parent: jelmer at samba.org-20080726184605-h3jtq9ceulnbbqr9
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-07-26 20:58:29 +0200
message:
Fix RevisionTree.get_file_text().
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 18:46:05 +0000
+++ b/git_repository.py 2008-07-26 18:58:29 +0000
@@ -169,6 +169,10 @@
return file_id.replace('_', '__').replace(' ', '_s')
+def unescape_file_id(file_id):
+ return file_id.replace("_s", " ").replace("__", "_")
+
+
class GitRevisionTree(revisiontree.RevisionTree):
def __init__(self, repository, revision_id):
@@ -186,10 +190,7 @@
def get_file_text(self, file_id):
entry = self._inventory[file_id]
if entry.kind == 'directory': return ""
- git_id = self._inventory.git_ids[file_id]
- if git_id in self._inventory.git_file_data:
- return self._inventory.git_file_data[git_id]
- return self._repository._get_blob(git_id)
+ return self._repository._git.blob(entry.text_id).data
def _build_inventory(self, tree, ie, path):
assert isinstance(path, str)
@@ -212,14 +213,14 @@
else:
raise AssertionError(
"Unknown file kind, perms=%r." % (b.mode,))
+ child_ie.text_id = b.id
child_ie.text_size = b.size
else:
raise AssertionError(
"Unknown blob kind, perms=%r." % (b.mode,))
child_ie.executable = bool(int(b.mode[3:], 8) & 0111)
child_ie.revision = self.revision_id
- assert not basename in ie.children
- ie.children[basename] = child_ie
+ self._inventory.add(child_ie)
if b.mode[0] == '0':
self._build_inventory(b, child_ie, child_path)
=== modified file 'tests/test_git_repository.py'
--- a/tests/test_git_repository.py 2008-07-26 16:23:29 +0000
+++ b/tests/test_git_repository.py 2008-07-26 18:58:29 +0000
@@ -86,6 +86,7 @@
repo = repository.Repository.open('.')
tree = repo.revision_tree(revid)
self.assertEquals(tree.get_revision_id(), revid)
+ self.assertEquals("text\n", tree.get_file_text(tree.path2id("data")))
def test_get_inventory(self):
# GitRepository.get_inventory gives a GitInventory object with
More information about the bazaar-commits
mailing list