Rev 3717: Location aliases now accept a trailing path (mwhudson) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Sat Sep 20 19:55:12 BST 2008


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

------------------------------------------------------------
revno: 3717
revision-id: pqm at pqm.ubuntu.com-20080920185508-g6uoij1vgokthw5m
parent: pqm at pqm.ubuntu.com-20080920182113-2mnuiiv5bg6x97fe
parent: aaron at aaronbentley.com-20080920182521-fihr2oqa20dasm2e
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Sat 2008-09-20 19:55:08 +0100
message:
  Location aliases now accept a trailing path (mwhudson)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
  bzrlib/tests/test_directory_service.py test_directory_servi-20080305221044-vr2mkvlsk8jypa2y-2
    ------------------------------------------------------------
    revno: 3714.2.4
    revision-id: aaron at aaronbentley.com-20080920182521-fihr2oqa20dasm2e
    parent: aaron at aaronbentley.com-20080920182341-109v6gy3u1dh2qh6
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: bzr.ab.integration2
    timestamp: Sat 2008-09-20 14:25:21 -0400
    message:
      Update NEWS
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3714.2.3
    revision-id: aaron at aaronbentley.com-20080920182341-109v6gy3u1dh2qh6
    parent: aaron at aaronbentley.com-20080920181622-h91pl0beqjpg8iyy
    parent: pqm at pqm.ubuntu.com-20080920182113-2mnuiiv5bg6x97fe
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: bzr.ab.integration2
    timestamp: Sat 2008-09-20 14:23:41 -0400
    message:
      Merge with bzr.dev
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/tests/blackbox/test_switch.py test_switch.py-20071122111948-0c5en6uz92bwl76h-1
      bzrlib/tests/tree_implementations/test_inv.py test_inv.py-20070312023226-0cdvk5uwhutis9vg-1
      bzrlib/tests/tree_implementations/test_tree.py test_tree.py-20061215160206-usu7lwcj8aq2n3br-1
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
    ------------------------------------------------------------
    revno: 3714.2.2
    revision-id: aaron at aaronbentley.com-20080920181622-h91pl0beqjpg8iyy
    parent: aaron at aaronbentley.com-20080920180732-ele9qmalgf0pl0n1
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: bzr.ab.integration2
    timestamp: Sat 2008-09-20 14:16:22 -0400
    message:
      Tweak logic to reduce string searching
    modified:
      bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
    ------------------------------------------------------------
    revno: 3714.2.1
    revision-id: aaron at aaronbentley.com-20080920180732-ele9qmalgf0pl0n1
    parent: pqm at pqm.ubuntu.com-20080919110131-v81t8izemtywe4vu
    parent: michael.hudson at canonical.com-20080814031355-a0qts3o42dcxrleb
    committer: Aaron Bentley <aaron at aaronbentley.com>
    branch nick: bzr.ab.integration2
    timestamp: Sat 2008-09-20 14:07:32 -0400
    message:
      Merge from mwhudson
    modified:
      bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
      bzrlib/tests/test_directory_service.py test_directory_servi-20080305221044-vr2mkvlsk8jypa2y-2
    ------------------------------------------------------------
    revno: 3625.1.2
    revision-id: michael.hudson at canonical.com-20080814031355-a0qts3o42dcxrleb
    parent: michael.hudson at canonical.com-20080813234232-nzwpyo7u42zrkom5
    committer: Michael Hudson <michael.hudson at canonical.com>
    branch nick: extend-alias-locations
    timestamp: Thu 2008-08-14 15:13:55 +1200
    message:
      import urlutils and write urlutils.join rather than join
    modified:
      bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
      bzrlib/tests/test_directory_service.py test_directory_servi-20080305221044-vr2mkvlsk8jypa2y-2
    ------------------------------------------------------------
    revno: 3625.1.1
    revision-id: michael.hudson at canonical.com-20080813234232-nzwpyo7u42zrkom5
    parent: pqm at pqm.ubuntu.com-20080813232540-mgtcd9chtkd9kda0
    committer: Michael Hudson <michael.hudson at canonical.com>
    branch nick: extend-alias-locations
    timestamp: Thu 2008-08-14 11:42:32 +1200
    message:
      Allow appending path segments to the :<name> style aliases.
    modified:
      bzrlib/directory_service.py    directory_service.py-20080305221044-vr2mkvlsk8jypa2y-1
      bzrlib/tests/test_directory_service.py test_directory_servi-20080305221044-vr2mkvlsk8jypa2y-2
=== modified file 'NEWS'
--- a/NEWS	2008-09-20 17:51:23 +0000
+++ b/NEWS	2008-09-20 18:25:21 +0000
@@ -13,6 +13,8 @@
 
   IMPROVEMENTS:
 
+    * Location aliases can now accept a trailing path.  (Micheal Hudson)
+
     * Switching in heavyweight checkouts uses the master branch's context, not
       the checkout's context.  (Adrian Wilkins)
 

=== modified file 'bzrlib/directory_service.py'
--- a/bzrlib/directory_service.py	2008-06-30 05:27:47 +0000
+++ b/bzrlib/directory_service.py	2008-09-20 18:16:22 +0000
@@ -22,6 +22,8 @@
 
 from bzrlib import errors, registry
 from bzrlib.branch import Branch
+from bzrlib import urlutils
+
 
 class DirectoryServiceRegistry(registry.Registry):
     """This object maintains and uses a list of directory services.
@@ -72,14 +74,22 @@
             'push': branch.get_push_location,
             'this': lambda: branch.base
         }
+        parts = url.split('/', 1)
+        if len(parts) == 2:
+            name, extra = parts
+        else:
+            (name,) = parts
+            extra = None
         try:
-            method = lookups[url[1:]]
+            method = lookups[name[1:]]
         except KeyError:
             raise errors.InvalidLocationAlias(url)
         else:
             result = method()
         if result is None:
             raise errors.UnsetLocationAlias(url)
+        if extra is not None:
+            result = urlutils.join(result, extra)
         return result
 
 directories.register(':', AliasDirectory,

=== modified file 'bzrlib/tests/test_directory_service.py'
--- a/bzrlib/tests/test_directory_service.py	2008-06-26 06:03:36 +0000
+++ b/bzrlib/tests/test_directory_service.py	2008-08-14 03:13:55 +0000
@@ -20,6 +20,7 @@
 from bzrlib.directory_service import DirectoryServiceRegistry, directories
 from bzrlib.tests import TestCase, TestCaseWithTransport
 from bzrlib.transport import get_transport
+from bzrlib import urlutils
 
 
 class FooService(object):
@@ -83,6 +84,11 @@
         branch = self.make_branch('.')
         self.assertEqual(branch.base, directories.dereference(':this'))
 
+    def test_extra_path(self):
+        branch = self.make_branch('.')
+        self.assertEqual(urlutils.join(branch.base, 'arg'),
+                         directories.dereference(':this/arg'))
+
     def test_lookup_badname(self):
         branch = self.make_branch('.')
         e = self.assertRaises(errors.InvalidLocationAlias,




More information about the bazaar-commits mailing list