Rev 3149: Optimize find_branches for standalone repositories (abentley) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Wed Jan 2 08:23:57 GMT 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3149
revision-id:pqm at pqm.ubuntu.com-20080102082344-qret383z2bdk1ud4
parent: pqm at pqm.ubuntu.com-20080102072122-nil0bpc9nxyp3tu4
parent: aaron.bentley at utoronto.ca-20071225060232-671w5ne2q1q1in50
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2008-01-02 08:23:44 +0000
message:
  Optimize find_branches for standalone repositories (abentley)
modified:
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
  bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
    ------------------------------------------------------------
    revno: 3140.1.9
    revision-id:aaron.bentley at utoronto.ca-20071225060232-671w5ne2q1q1in50
    parent: aaron.bentley at utoronto.ca-20071222174618-hxp45z0s6oqdf8ju
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: find-branches
    timestamp: Tue 2007-12-25 01:02:32 -0500
    message:
      Optimize find_branches for standalone repositories
    modified:
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
    ------------------------------------------------------------
    revno: 3140.1.8
    revision-id:aaron.bentley at utoronto.ca-20071222174618-hxp45z0s6oqdf8ju
    parent: abentley at panoramicfeedback.com-20071221230131-zsheywe5tanfcm60
    parent: pqm at pqm.ubuntu.com-20071222080058-lra6luc153ex60w4
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: find-branches
    timestamp: Sat 2007-12-22 12:46:18 -0500
    message:
      Merge bzr.dev
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/tests/test_version_info.py test_version_info.py-20051228204928-2c364e30b702b41b
      bzrlib/version_info_formats/__init__.py generate_version_info.py-20051228204928-8358edabcddcd97e
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2007-12-21 23:01:31 +0000
+++ b/bzrlib/repository.py	2007-12-25 06:02:32 +0000
@@ -773,7 +773,11 @@
 
         :param using: If True, list only branches using this repository.
         """
-
+        if using and not self.is_shared():
+            try:
+                return [self.bzrdir.open_branch()]
+            except errors.NotBranchError:
+                return []
         class Evaluator(object):
 
             def __init__(self):

=== modified file 'bzrlib/tests/repository_implementations/test_repository.py'
--- a/bzrlib/tests/repository_implementations/test_repository.py	2007-12-30 02:13:10 +0000
+++ b/bzrlib/tests/repository_implementations/test_repository.py	2008-01-02 08:23:44 +0000
@@ -688,6 +688,26 @@
         else:
             self.assertEqual(1, len(branches))
 
+    def test_find_branches_using_standalone(self):
+        branch = self.make_branch('branch')
+        contained = self.make_branch('branch/contained')
+        branches = branch.repository.find_branches(using=True)
+        self.assertEqual([branch.base], [b.base for b in branches])
+        branches = branch.repository.find_branches(using=False)
+        self.assertEqual([branch.base, contained.base],
+                         [b.base for b in branches])
+
+    def test_find_branches_using_empty_standalone_repo(self):
+        repo = self.make_repository('repo')
+        self.assertFalse(repo.is_shared())
+        try:
+            repo.bzrdir.open_branch()
+        except errors.NotBranchError:
+            self.assertEqual([], repo.find_branches(using=True))
+        else:
+            self.assertEqual([repo.bzrdir.root_transport.base],
+                             [b.base for b in repo.find_branches(using=True)])
+
 
 class TestRepositoryLocking(TestCaseWithRepository):
 




More information about the bazaar-commits mailing list