[MERGE] init remote branches

Wouter van Heyst larstiq at larstiq.dyndns.org
Sun Jul 2 18:12:30 BST 2006


Hi all,

unlike init-repo init isn't able to work with remote urls. I think it
should be, especially for centralized workflows. Help and comments from
Rob on irc resulted in the attached bundle.

https://launchpad.net/products/bzr/+bug/48904
mergeable from http://bzr.richtlijn.be/remote-init

Wouter van Heyst
-------------- next part --------------
# Bazaar revision bundle v0.8
#
# message:
#   more review comments
# committer: Wouter van Heyst <larstiq at larstiq.dyndns.org>
# date: Sun 2006-07-02 18:48:37.698283911 +0200

=== modified file NEWS // last-changed:larstiq at larstiq.dyndns.org-2006070215460
... 0-848abd3894fadfc1
--- NEWS
+++ NEWS
@@ -71,6 +71,9 @@
    * 'bzr revert DIRECTORY' now reverts the contents of the directory as well.
      (Aaron Bentley)
 
+   * 'bzr init' now also works on remote locations.
+     (Wouter van Heyst)
+
   BUG FIXES:
 
     * Fix shadowed definition of TestLocationConfig that caused some 

=== modified file bzrlib/builtins.py
--- bzrlib/builtins.py
+++ bzrlib/builtins.py
@@ -39,6 +39,7 @@
 from bzrlib.revision import common_ancestor
 from bzrlib.revisionspec import RevisionSpec
 from bzrlib.trace import mutter, note, log_error, warning, is_quiet, info
+import  bzrlib.transport
 from bzrlib.transport.local import LocalTransport
 import bzrlib.urlutils as urlutils
 from bzrlib.workingtree import WorkingTree
@@ -511,7 +512,6 @@
             create_prefix=False, verbose=False):
         # FIXME: Way too big!  Put this into a function called from the
         # command.
-        from bzrlib.transport import get_transport
         
         br_from = Branch.open_containing('.')[0]
         stored_loc = br_from.get_push_location()
@@ -524,7 +524,7 @@
                 self.outf.write("Using saved location: %s\n" % display_url)
                 location = stored_loc
 
-        transport = get_transport(location)
+        transport = bzrlib.transport.get_transport(location)
         location_url = transport.base
 
         old_rh = []
@@ -613,7 +613,6 @@
     aliases = ['get', 'clone']
 
     def run(self, from_location, to_location=None, revision=None, basis=None):
-        from bzrlib.transport import get_transport
         if revision is None:
             revision = [None]
         elif len(revision) > 1:
@@ -646,7 +645,7 @@
             else:
                 name = os.path.basename(to_location) + '\n'
 
-            to_transport = get_transport(to_location)
+            to_transport = bzrlib.transport.get_transport(to_location)
             try:
                 to_transport.mkdir('.')
             except errors.FileExists:
@@ -1007,6 +1006,7 @@
     def run(self, location=None, format=None):
         if format is None:
             format = get_format_type('default')
+        transport = bzrlib.transport.get_transport(location)
         if location is None:
             location = u'.'
         else:
@@ -1015,8 +1015,9 @@
             # Just using os.mkdir, since I don't
             # believe that we want to create a bunch of
             # locations if the user supplies an extended path
-            if not os.path.exists(location):
-                os.mkdir(location)
+            if not transport.has('.'):
+                transport.mkdir('')
+                    
         try:
             existing_bzrdir = bzrdir.BzrDir.open(location)
         except NotBranchError:
@@ -1024,10 +1025,10 @@
             bzrdir.BzrDir.create_branch_convenience(location, format=format)
         else:
             if existing_bzrdir.has_branch():
-                if existing_bzrdir.has_workingtree():
-                    raise errors.AlreadyBranchError(location)
-                else:
-                    raise errors.BranchExistsWithoutWorkingTree(location)
+                if isinstance(transport, LocalTransport):
+                    if not existing_bzrdir.has_workingtree():
+                        raise errors.BranchExistsWithoutWorkingTree(location)
+                raise errors.AlreadyBranchError(location)
             else:
                 existing_bzrdir.create_branch()
                 existing_bzrdir.create_workingtree()
@@ -1059,10 +1060,9 @@
                              ' a working tree')]
     aliases = ["init-repo"]
     def run(self, location, format=None, trees=False):
-        from bzrlib.transport import get_transport
         if format is None:
             format = get_format_type('default')
-        transport = get_transport(location)
+        transport = bzrlib.transport.get_transport(location)
         if not transport.has('.'):
             transport.mkdir('')
         newdir = format.initialize_on_transport(transport)

=== modified file bzrlib/tests/blackbox/test_init.py
--- bzrlib/tests/blackbox/test_init.py
+++ bzrlib/tests/blackbox/test_init.py
@@ -22,6 +22,7 @@
 
 from bzrlib.bzrdir import BzrDirMetaFormat1
 from bzrlib.tests.blackbox import ExternalBase
+from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
 from bzrlib.workingtree import WorkingTree
 
 
@@ -100,3 +101,28 @@
         # suggests using checkout
         self.assertContainsRe(err, 'ontains a branch.*but no working tree.*checkout')
 
+
+class TestSFTPInit(TestCaseWithSFTPServer):
+
+    def test_init(self):
+        # init on a remote url should succeed.
+        out, err = self.run_bzr('init', self.get_url())
+        self.assertEqual('', out)
+        self.assertEqual('', err)
+    
+    def test_init_existing_branch(self):
+        # when there is already a branch present, make mention
+        self.make_branch('.')
+
+        # rely on SFTPServer get_url() pointing at '.'
+        out, err = self.run_bzr('init', self.get_url(), retcode=3)
+        self.assertContainsRe(err, 'Already a branch')
+
+    def test_init_existing_branch_with_workingtree(self):
+        # don't distinguish between the branch having a working tree or not
+        # when the branch itself is remote.
+        self.make_branch_and_tree('.')
+
+        # rely on SFTPServer get_url() pointing at '.'
+        out, err = self.run_bzr('init', self.get_url(), retcode=3)
+        self.assertFalse(re.search(r'checkout', err))

# revision id: larstiq at larstiq.dyndns.org-20060702164837-f605fe8406da8038
# sha1: bd7fdab5b720d963a29ae8690db48ab60988bdb4
# inventory sha1: 02582aa7193e2f261c7f48a493a8ebce478a8aa5
# parent ids:
#   larstiq at larstiq.dyndns.org-20060702161805-25638faa09cd04bd
# base id: pqm at pqm.ubuntu.com-20060702004915-501855cc9fc14e10
# properties:
#   branch-nick: remote-init

# message:
#   more review comments
# committer: Wouter van Heyst <larstiq at larstiq.dyndns.org>
# date: Sun 2006-07-02 18:18:05.707833052 +0200

=== modified file bzrlib/tests/blackbox/test_init.py // encoding:base64
LS0tIGJ6cmxpYi90ZXN0cy9ibGFja2JveC90ZXN0X2luaXQucHkKKysrIGJ6cmxpYi90ZXN0cy9i
bGFja2JveC90ZXN0X2luaXQucHkKQEAgLTEwNSwxNiArMTA1LDIyIEBACiBjbGFzcyBUZXN0U0ZU
UEluaXQoVGVzdENhc2VXaXRoU0ZUUFNlcnZlcik6CiAKICAgICBkZWYgdGVzdF9pbml0KHNlbGYp
OgotICAgICAgICB1cmwgPSBzZWxmLmdldF91cmwoKQotICAgICAgICBvdXQsIGVyciA9IHNlbGYu
cnVuX2J6cignaW5pdCcsIHVybCkKKyAgICAgICAgIyBpbml0IG9uIGEgcmVtb3RlIHVybCBzaG91
bGQgc3VjY2VlZC4KKyAgICAgICAgb3V0LCBlcnIgPSBzZWxmLnJ1bl9ienIoJ2luaXQnLCBzZWxm
LmdldF91cmwoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgb3V0KQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCcnLCBlcnIpCi0KLSAgICAgICAgb3V0LCBlcnIgPSBzZWxmLnJ1bl9i
enIoJ2luaXQnLCB1cmwsIHJldGNvZGU9MykKKyAgICAKKyAgICBkZWYgdGVzdF9pbml0X2V4aXN0
aW5nX2JyYW5jaChzZWxmKToKKyAgICAgICAgIyB3aGVuIHRoZXJlIGlzIGFscmVhZHkgYSBicmFu
Y2ggcHJlc2VudCwgbWFrZSBtZW50aW9uCisgICAgICAgIHNlbGYucnVuX2J6cignaW5pdCcsIHNl
bGYuZ2V0X3VybCgpKQorICAgICAgICBvdXQsIGVyciA9IHNlbGYucnVuX2J6cignaW5pdCcsIHNl
bGYuZ2V0X3VybCgpLCByZXRjb2RlPTMpCiAgICAgICAgIHNlbGYuYXNzZXJ0Q29udGFpbnNSZShl
cnIsICdBbHJlYWR5IGEgYnJhbmNoJykKIAotICAgICAgICBzZWxmLnJ1bl9ienIoJ2NoZWNrb3V0
JywgJy4nKQotICAgICAgICAjIHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBub3QgbG9jYWwsIGRvbid0
IGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIGJyYW5jaAotICAgICAgICAjIGhhdmluZyBhIHdvcmtp
bmcgdHJlZSBvciBub3QuCi0gICAgICAgIG91dCwgZXJyID0gc2VsZi5ydW5fYnpyKCdpbml0Jywg
dXJsLCByZXRjb2RlPTMpCisgICAgZGVmIHRlc3RfaW5pdF9zb21ldGhpbmcoc2VsZik6CisgICAg
ICAgICMgZG9uJ3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgYnJhbmNoIGhhdmluZyBhIHdvcmtp
bmcgdHJlZSBvciBub3QKKyAgICAgICAgIyB3aGVuIHRoZSBicmFuY2ggaXRzZWxmIGlzIHJlbW90
ZS4KKyAgICAgICAgc2VsZi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCisKKyAgICAgICAgIyBy
ZWx5IG9uIFNGVFBTZXJ2ZXIgZ2V0X3VybCgpIHBvaW50aW5nIGF0ICcuJworICAgICAgICBvdXQs
IGVyciA9IHNlbGYucnVuX2J6cignaW5pdCcsIHNlbGYuZ2V0X3VybCgpLCByZXRjb2RlPTMpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmUuc2VhcmNoKHInY2hlY2tvdXQnLCBlcnIpKQoK

# revision id: larstiq at larstiq.dyndns.org-20060702161805-25638faa09cd04bd
# sha1: 111d3a61ef4471a69bc952b7f5503698ab4577a8
# inventory sha1: 5c02ba5a45c285625ad4c5ff305cdfdcdccbf4eb
# parent ids:
#   larstiq at larstiq.dyndns.org-20060702160708-e3a6a0e9adff50d0
# properties:
#   branch-nick: remote-init

# message:
#   move function local imports of get_transport to the top
# committer: Wouter van Heyst <larstiq at larstiq.dyndns.org>
# date: Sun 2006-07-02 18:07:08.325299978 +0200

=== modified file bzrlib/builtins.py // encoding:base64
LS0tIGJ6cmxpYi9idWlsdGlucy5weQorKysgYnpybGliL2J1aWx0aW5zLnB5CkBAIC0zOSw2ICsz
OSw3IEBACiBmcm9tIGJ6cmxpYi5yZXZpc2lvbiBpbXBvcnQgY29tbW9uX2FuY2VzdG9yCiBmcm9t
IGJ6cmxpYi5yZXZpc2lvbnNwZWMgaW1wb3J0IFJldmlzaW9uU3BlYwogZnJvbSBienJsaWIudHJh
Y2UgaW1wb3J0IG11dHRlciwgbm90ZSwgbG9nX2Vycm9yLCB3YXJuaW5nLCBpc19xdWlldCwgaW5m
bworZnJvbSBienJsaWIudHJhbnNwb3J0IGltcG9ydCBnZXRfdHJhbnNwb3J0CiBmcm9tIGJ6cmxp
Yi50cmFuc3BvcnQubG9jYWwgaW1wb3J0IExvY2FsVHJhbnNwb3J0CiBpbXBvcnQgYnpybGliLnVy
bHV0aWxzIGFzIHVybHV0aWxzCiBmcm9tIGJ6cmxpYi53b3JraW5ndHJlZSBpbXBvcnQgV29ya2lu
Z1RyZWUKQEAgLTUxMSw3ICs1MTIsNiBAQAogICAgICAgICAgICAgY3JlYXRlX3ByZWZpeD1GYWxz
ZSwgdmVyYm9zZT1GYWxzZSk6CiAgICAgICAgICMgRklYTUU6IFdheSB0b28gYmlnISAgUHV0IHRo
aXMgaW50byBhIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIHRoZQogICAgICAgICAjIGNvbW1hbmQuCi0g
ICAgICAgIGZyb20gYnpybGliLnRyYW5zcG9ydCBpbXBvcnQgZ2V0X3RyYW5zcG9ydAogICAgICAg
ICAKICAgICAgICAgYnJfZnJvbSA9IEJyYW5jaC5vcGVuX2NvbnRhaW5pbmcoJy4nKVswXQogICAg
ICAgICBzdG9yZWRfbG9jID0gYnJfZnJvbS5nZXRfcHVzaF9sb2NhdGlvbigpCkBAIC02MTMsNyAr
NjEzLDYgQEAKICAgICBhbGlhc2VzID0gWydnZXQnLCAnY2xvbmUnXQogCiAgICAgZGVmIHJ1bihz
ZWxmLCBmcm9tX2xvY2F0aW9uLCB0b19sb2NhdGlvbj1Ob25lLCByZXZpc2lvbj1Ob25lLCBiYXNp
cz1Ob25lKToKLSAgICAgICAgZnJvbSBienJsaWIudHJhbnNwb3J0IGltcG9ydCBnZXRfdHJhbnNw
b3J0CiAgICAgICAgIGlmIHJldmlzaW9uIGlzIE5vbmU6CiAgICAgICAgICAgICByZXZpc2lvbiA9
IFtOb25lXQogICAgICAgICBlbGlmIGxlbihyZXZpc2lvbikgPiAxOgpAQCAtMTAwNSw3ICsxMDA0
LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPWdldF9mb3JtYXRfdHlwZSks
CiAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgZGVmIHJ1bihzZWxmLCBsb2NhdGlvbj1Ob25l
LCBmb3JtYXQ9Tm9uZSk6Ci0gICAgICAgIGZyb20gYnpybGliLnRyYW5zcG9ydCBpbXBvcnQgZ2V0
X3RyYW5zcG9ydAogICAgICAgICBpZiBmb3JtYXQgaXMgTm9uZToKICAgICAgICAgICAgIGZvcm1h
dCA9IGdldF9mb3JtYXRfdHlwZSgnZGVmYXVsdCcpCiAgICAgICAgIHRyYW5zcG9ydCA9IGdldF90
cmFuc3BvcnQobG9jYXRpb24pCkBAIC0xMDYyLDcgKzEwNjAsNiBAQAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnIGEgd29ya2luZyB0cmVlJyldCiAgICAgYWxpYXNlcyA9IFsiaW5pdC1y
ZXBvIl0KICAgICBkZWYgcnVuKHNlbGYsIGxvY2F0aW9uLCBmb3JtYXQ9Tm9uZSwgdHJlZXM9RmFs
c2UpOgotICAgICAgICBmcm9tIGJ6cmxpYi50cmFuc3BvcnQgaW1wb3J0IGdldF90cmFuc3BvcnQK
ICAgICAgICAgaWYgZm9ybWF0IGlzIE5vbmU6CiAgICAgICAgICAgICBmb3JtYXQgPSBnZXRfZm9y
bWF0X3R5cGUoJ2RlZmF1bHQnKQogICAgICAgICB0cmFuc3BvcnQgPSBnZXRfdHJhbnNwb3J0KGxv
Y2F0aW9uKQoK

# revision id: larstiq at larstiq.dyndns.org-20060702160708-e3a6a0e9adff50d0
# sha1: c68acf3a782a51bbd68bf64a2450bbf89a613acd
# inventory sha1: ac5f8a67f12e2c0b4300ce39e44f6b0307198e23
# parent ids:
#   larstiq at larstiq.dyndns.org-20060702154600-848abd3894fadfc1
# properties:
#   branch-nick: remote-init

# message:
#   Allow bzr init to create remote branches
# committer: Wouter van Heyst <larstiq at larstiq.dyndns.org>
# date: Sun 2006-07-02 17:46:00.034646034 +0200

=== modified file NEWS // encoding:base64
LS0tIE5FV1MKKysrIE5FV1MKQEAgLTcxLDYgKzcxLDkgQEAKICAgICogJ2J6ciByZXZlcnQgRElS
RUNUT1JZJyBub3cgcmV2ZXJ0cyB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeSBhcyB3ZWxs
LgogICAgICAoQWFyb24gQmVudGxleSkKIAorICAgKiAnYnpyIGluaXQnIG5vdyBhbHNvIHdvcmtz
IG9uIHJlbW90ZSBsb2NhdGlvbnMuCisgICAgIChXb3V0ZXIgdmFuIEhleXN0KQorCiAgIEJVRyBG
SVhFUzoKIAogICAgICogRml4IHNoYWRvd2VkIGRlZmluaXRpb24gb2YgVGVzdExvY2F0aW9uQ29u
ZmlnIHRoYXQgY2F1c2VkIHNvbWUgCgo=

=== modified file bzrlib/builtins.py // encoding:base64
LS0tIGJ6cmxpYi9idWlsdGlucy5weQorKysgYnpybGliL2J1aWx0aW5zLnB5CkBAIC0xMDA1LDgg
KzEwMDUsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPWdldF9mb3JtYXRf
dHlwZSksCiAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgZGVmIHJ1bihzZWxmLCBsb2NhdGlv
bj1Ob25lLCBmb3JtYXQ9Tm9uZSk6CisgICAgICAgIGZyb20gYnpybGliLnRyYW5zcG9ydCBpbXBv
cnQgZ2V0X3RyYW5zcG9ydAogICAgICAgICBpZiBmb3JtYXQgaXMgTm9uZToKICAgICAgICAgICAg
IGZvcm1hdCA9IGdldF9mb3JtYXRfdHlwZSgnZGVmYXVsdCcpCisgICAgICAgIHRyYW5zcG9ydCA9
IGdldF90cmFuc3BvcnQobG9jYXRpb24pCiAgICAgICAgIGlmIGxvY2F0aW9uIGlzIE5vbmU6CiAg
ICAgICAgICAgICBsb2NhdGlvbiA9IHUnLicKICAgICAgICAgZWxzZToKQEAgLTEwMTUsOCArMTAx
Nyw5IEBACiAgICAgICAgICAgICAjIEp1c3QgdXNpbmcgb3MubWtkaXIsIHNpbmNlIEkgZG9uJ3QK
ICAgICAgICAgICAgICMgYmVsaWV2ZSB0aGF0IHdlIHdhbnQgdG8gY3JlYXRlIGEgYnVuY2ggb2YK
ICAgICAgICAgICAgICMgbG9jYXRpb25zIGlmIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGV4dGVuZGVk
IHBhdGgKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhsb2NhdGlvbik6Ci0gICAg
ICAgICAgICAgICAgb3MubWtkaXIobG9jYXRpb24pCisgICAgICAgICAgICBpZiBub3QgdHJhbnNw
b3J0LmhhcygnLicpOgorICAgICAgICAgICAgICAgIHRyYW5zcG9ydC5ta2RpcignJykKKyAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGV4aXN0aW5nX2J6cmRp
ciA9IGJ6cmRpci5CenJEaXIub3Blbihsb2NhdGlvbikKICAgICAgICAgZXhjZXB0IE5vdEJyYW5j
aEVycm9yOgpAQCAtMTAyNCwxMCArMTAyNywxMCBAQAogICAgICAgICAgICAgYnpyZGlyLkJ6ckRp
ci5jcmVhdGVfYnJhbmNoX2NvbnZlbmllbmNlKGxvY2F0aW9uLCBmb3JtYXQ9Zm9ybWF0KQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgaWYgZXhpc3RpbmdfYnpyZGlyLmhhc19icmFuY2goKToK
LSAgICAgICAgICAgICAgICBpZiBleGlzdGluZ19ienJkaXIuaGFzX3dvcmtpbmd0cmVlKCk6Ci0g
ICAgICAgICAgICAgICAgICAgIHJhaXNlIGVycm9ycy5BbHJlYWR5QnJhbmNoRXJyb3IobG9jYXRp
b24pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXJy
b3JzLkJyYW5jaEV4aXN0c1dpdGhvdXRXb3JraW5nVHJlZShsb2NhdGlvbikKKyAgICAgICAgICAg
ICAgICBpZiBpc2luc3RhbmNlKHRyYW5zcG9ydCwgTG9jYWxUcmFuc3BvcnQpOgorICAgICAgICAg
ICAgICAgICAgICBpZiBub3QgZXhpc3RpbmdfYnpyZGlyLmhhc193b3JraW5ndHJlZSgpOgorICAg
ICAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3JzLkJyYW5jaEV4aXN0c1dpdGhvdXRXb3Jr
aW5nVHJlZShsb2NhdGlvbikKKyAgICAgICAgICAgICAgICByYWlzZSBlcnJvcnMuQWxyZWFkeUJy
YW5jaEVycm9yKGxvY2F0aW9uKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBl
eGlzdGluZ19ienJkaXIuY3JlYXRlX2JyYW5jaCgpCiAgICAgICAgICAgICAgICAgZXhpc3Rpbmdf
YnpyZGlyLmNyZWF0ZV93b3JraW5ndHJlZSgpCgo=

=== modified file bzrlib/tests/blackbox/test_init.py // encoding:base64
LS0tIGJ6cmxpYi90ZXN0cy9ibGFja2JveC90ZXN0X2luaXQucHkKKysrIGJ6cmxpYi90ZXN0cy9i
bGFja2JveC90ZXN0X2luaXQucHkKQEAgLTIyLDYgKzIyLDcgQEAKIAogZnJvbSBienJsaWIuYnpy
ZGlyIGltcG9ydCBCenJEaXJNZXRhRm9ybWF0MQogZnJvbSBienJsaWIudGVzdHMuYmxhY2tib3gg
aW1wb3J0IEV4dGVybmFsQmFzZQorZnJvbSBienJsaWIudGVzdHMudGVzdF9zZnRwX3RyYW5zcG9y
dCBpbXBvcnQgVGVzdENhc2VXaXRoU0ZUUFNlcnZlcgogZnJvbSBienJsaWIud29ya2luZ3RyZWUg
aW1wb3J0IFdvcmtpbmdUcmVlCiAKIApAQCAtMTAwLDMgKzEwMSwyMCBAQAogICAgICAgICAjIHN1
Z2dlc3RzIHVzaW5nIGNoZWNrb3V0CiAgICAgICAgIHNlbGYuYXNzZXJ0Q29udGFpbnNSZShlcnIs
ICdvbnRhaW5zIGEgYnJhbmNoLipidXQgbm8gd29ya2luZyB0cmVlLipjaGVja291dCcpCiAKKwor
Y2xhc3MgVGVzdFNGVFBJbml0KFRlc3RDYXNlV2l0aFNGVFBTZXJ2ZXIpOgorCisgICAgZGVmIHRl
c3RfaW5pdChzZWxmKToKKyAgICAgICAgdXJsID0gc2VsZi5nZXRfdXJsKCkKKyAgICAgICAgb3V0
LCBlcnIgPSBzZWxmLnJ1bl9ienIoJ2luaXQnLCB1cmwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJycsIG91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgZXJyKQorCisgICAgICAg
IG91dCwgZXJyID0gc2VsZi5ydW5fYnpyKCdpbml0JywgdXJsLCByZXRjb2RlPTMpCisgICAgICAg
IHNlbGYuYXNzZXJ0Q29udGFpbnNSZShlcnIsICdBbHJlYWR5IGEgYnJhbmNoJykKKworICAgICAg
ICBzZWxmLnJ1bl9ienIoJ2NoZWNrb3V0JywgJy4nKQorICAgICAgICAjIHdoZW4gdGhlIHRyYW5z
cG9ydCBpcyBub3QgbG9jYWwsIGRvbid0IGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIGJyYW5jaAor
ICAgICAgICAjIGhhdmluZyBhIHdvcmtpbmcgdHJlZSBvciBub3QuCisgICAgICAgIG91dCwgZXJy
ID0gc2VsZi5ydW5fYnpyKCdpbml0JywgdXJsLCByZXRjb2RlPTMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UocmUuc2VhcmNoKHInY2hlY2tvdXQnLCBlcnIpKQoK

# revision id: larstiq at larstiq.dyndns.org-20060702154600-848abd3894fadfc1
# sha1: 1b9ff80b42393bbd22d05b0c4a6538a08787f002
# inventory sha1: 62b4553333820aff78825ed00b8b7bbd144729f2
# parent ids:
#   pqm at pqm.ubuntu.com-20060702004915-501855cc9fc14e10
# properties:
#   branch-nick: remote-init



More information about the bazaar mailing list