Rev 1395: Implement item_keys_introduced_by(). in http://people.samba.org/bzr/jelmer/bzr-svn/0.4

Jelmer Vernooij jelmer at samba.org
Tue Jul 1 13:46:52 BST 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/0.4

------------------------------------------------------------
revno: 1395
revision-id: jelmer at samba.org-20080701124651-uh04jxaw3czphkgs
parent: jelmer at samba.org-20080701123311-edxh24acz3fqq133
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Tue 2008-07-01 14:46:51 +0200
message:
  Implement item_keys_introduced_by().
modified:
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
  tests/test_repository.py       test_repos.py-20060508151940-ddc49a59257ca712
=== modified file 'repository.py'
--- a/repository.py	2008-07-01 12:33:11 +0000
+++ b/repository.py	2008-07-01 12:46:51 +0000
@@ -249,18 +249,18 @@
         self._cached_revnum = self.transport.get_latest_revnum()
         return self._cached_revnum
 
-    def item_keys_introduced_by(self, revision_ids, _file_pb=None):
+    def item_keys_introduced_by(self, revision_ids, _files_pb=None):
         fileids = {}
 
         for count, (revid, d) in enumerate(zip(revision_ids, self.get_deltas_for_revisions(self.get_revisions(revision_ids)))):
-            if _files_cb is not None:
+            if _files_pb is not None:
                 _files_pb.update("fetch revisions for texts", count, len(revision_ids))
             for c in d.added + d.modified:
                 fileids.setdefault(c[1], set()).add(revid)
             for c in d.renamed:
                 fileids.setdefault(c[2], set()).add(revid)
 
-        for fileids, altered_versions in fileids.items():
+        for fileid, altered_versions in fileids.items():
             yield ("file", fileid, altered_versions)
         
         # We're done with the files_pb.  Note that it finished by the caller,
@@ -274,7 +274,7 @@
         for rev_id in revision_ids:
             try:
                 self.get_signature_text(rev_id)
-            except errors.NoSuchRevision:
+            except NoSuchRevision:
                 # not signed.
                 pass
             else:

=== modified file 'tests/test_repository.py'
--- a/tests/test_repository.py	2008-06-29 12:45:15 +0000
+++ b/tests/test_repository.py	2008-07-01 12:46:51 +0000
@@ -1160,6 +1160,27 @@
         self.assertEquals(repos.generate_revision_id(1, "py/trunk", mapping), \
                 repos.lhs_revision_parent("de/trunk", 3, mapping))
 
+    def test_item_keys_introduced_by(self):
+        repos_url = self.make_repository('d')
+
+        cb = self.get_commit_editor(repos_url)
+        cb.add_file("foo").modify()
+        cb.close()
+
+        cb = self.get_commit_editor(repos_url)
+        cb.open_file("foo").modify()
+        cb.close()
+
+        b = Branch.open(repos_url)
+        mapping = b.repository.get_mapping()
+        ch = list(b.repository.item_keys_introduced_by([b.last_revision()]))
+        revid = b.last_revision()
+        self.assertEquals([
+            ('file', mapping.generate_file_id(b.repository.uuid, 1, "", u"foo"), set([revid])),
+            ('inventory', None, [revid]),
+            ('signatures', None, set([])),
+            ('revisions', None, [revid])], ch)
+
 
 class TestSvnRevisionTree(TestCaseWithSubversionRepository):
     def setUp(self):




More information about the bazaar-commits mailing list