Rev 5252: Permit looking up without creating branches on launchpad. in http://bazaar.launchpad.net/~lifeless/bzr/fetch-proposed

Robert Collins robertc at robertcollins.net
Sun May 23 12:15:13 BST 2010


At http://bazaar.launchpad.net/~lifeless/bzr/fetch-proposed

------------------------------------------------------------
revno: 5252
revision-id: robertc at robertcollins.net-20100523111511-z4jsjf3jyxqzqefb
parent: robertc at robertcollins.net-20100522100045-gf2bcx5lkxpxvt2m
committer: Robert Collins <robertc at robertcollins.net>
branch nick: fetch-proposed
timestamp: Sun 2010-05-23 23:15:11 +1200
message:
  Permit looking up without creating branches on launchpad.
=== modified file 'bzrlib/plugins/launchpad/lp_api.py'
--- a/bzrlib/plugins/launchpad/lp_api.py	2010-05-22 09:44:47 +0000
+++ b/bzrlib/plugins/launchpad/lp_api.py	2010-05-23 11:15:11 +0000
@@ -196,17 +196,30 @@
                            'bazaar.staging.launchpad.net')
 
     @classmethod
-    def from_bzr(cls, launchpad, bzr_branch):
-        """Find a Launchpad branch from a bzr branch."""
-        check_update = True
+    def find_from_bzr(cls, launchpad, bzr_branch):
+        """Find a Launchpad branch from a bzr branch.
+        
+        :return: A launchpadlib branch object, or None.
+        :raises BzrError: When the branch has no launchpad urls known to it.
+        """
         for url in cls.candidate_urls(bzr_branch):
             url = cls.tweak_url(url, launchpad)
             if not cls.plausible_launchpad_url(url):
                 continue
             lp_branch = launchpad.branches.getByUrl(url=url)
             if lp_branch is not None:
-                break
-        else:
+                return lp_branch
+
+    @classmethod
+    def from_bzr(cls, launchpad, bzr_branch):
+        """Find a Launchpad branch from a bzr branch.
+        
+        If the branch claims to be pushed to Launchpad but launchpad does not
+        know about it, create a Launchpad object for it.
+        """
+        check_update = True
+        lp_branch = cls.find_from_bzr(launchpad, bzr_branch)
+        if lp_branch is None:
             lp_branch = cls.create_now(launchpad, bzr_branch)
             check_update = False
         return cls(lp_branch, bzr_branch.base, bzr_branch, check_update)




More information about the bazaar-commits mailing list