Rev 1429: Add find_tags. in file:///data/jelmer/bzr-svn/tags/

Jelmer Vernooij jelmer at samba.org
Thu Jul 3 19:53:24 BST 2008


At file:///data/jelmer/bzr-svn/tags/

------------------------------------------------------------
revno: 1429
revision-id: jelmer at samba.org-20080703185323-pfj2a2qtitnh6zop
parent: jelmer at samba.org-20080703184844-6s1i7aakg9glmmfh
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: tags
timestamp: Thu 2008-07-03 20:53:23 +0200
message:
  Add find_tags.
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-03 17:39:58 +0000
+++ b/repository.py	2008-07-03 18:53:23 +0000
@@ -728,6 +728,30 @@
             pb.finished()
         return branches
 
+    @needs_read_lock
+    def find_tags(self, layout=None, revnum=None):
+        """Find branches underneath this repository.
+
+        """
+        if layout is None:
+            layout = self.get_layout()
+
+        if revnum is None:
+            revnum = self.get_latest_revnum()
+
+        tags = {}
+        pb = ui.ui_factory.nested_progress_bar()
+        try:
+            for project, bp, nick in layout.get_tags(revnum, pb=pb):
+                try:
+                    tags[nick] = self.generate_revision_id(revnum, bp, 
+                                                           self.get_mapping())
+                except NotBranchError: # Skip non-directories
+                    pass
+        finally:
+            pb.finished()
+        return tags
+
     def find_branchpaths(self, layout, from_revnum=0, to_revnum=None):
         """Find all branch paths that were changed in the specified revision 
         range.

=== modified file 'tests/test_repository.py'
--- a/tests/test_repository.py	2008-07-01 12:46:51 +0000
+++ b/tests/test_repository.py	2008-07-03 18:53:23 +0000
@@ -401,6 +401,21 @@
         self.assertEquals(urlutils.join(repos.base, "branches/branchab"), 
                           branches[0].base)
 
+    def test_find_tags(self):
+        repos_url = self.make_client('a', 'dc')
+        self.build_tree({
+            'dc/tags/brancha': None,
+            'dc/tags/branchab': None,
+            'dc/tags/brancha/data': "data", 
+            "dc/tags/branchab/data":"data"})
+        self.client_add("dc/tags")
+        self.client_commit("dc", "My Message")
+        repos = Repository.open(repos_url)
+        set_branching_scheme(repos, TrunkBranchingScheme())
+        tags = repos.find_tags()
+        self.assertEquals({"brancha": repos.generate_revision_id(1, "tags/brancha", repos.get_mapping()),
+                           "branchab": repos.generate_revision_id(1, "tags/branchab", repos.get_mapping())}, tags)
+
     def test_find_branchpaths_moved(self):
         repos_url = self.make_client("a", "dc")
         self.build_tree({




More information about the bazaar-commits mailing list