[MERGE] init remote branches

Wouter van Heyst larstiq at larstiq.dyndns.org
Thu Jul 13 19:41:10 BST 2006


Hi,

the attached bundle allows init to also work on remote locations (bug
#48904), it doesn't yet have create-prefix support since my last attempt
at that didn't really turn out well, but I think it is better to submit
this now for 0.9 and try create-prefix again later on. 

The branch is located at http://bzr.richtlijn.be/remote-init/

Wouter van Heyst
-------------- next part --------------
# Bazaar revision bundle v0.8
#
# message:
#   [merge] bzr.dev 1863
# committer: Wouter van Heyst <larstiq at larstiq.dyndns.org>
# date: Thu 2006-07-13 20:18:00.404706955 +0200

=== modified file NEWS
--- NEWS
+++ NEWS
@@ -101,6 +101,9 @@
      were removed. So it is safe to uncommit after a merge, fix something,
      and commit again. (John Arbash Meinel, #32526, #31426)
 
+   * 'bzr init' now also works on remote locations.
+     (Wouter van Heyst, #48904)
+
   BUG FIXES:
 
     * Fix shadowed definition of TestLocationConfig that caused some 

=== modified file bzrlib/builtins.py
--- bzrlib/builtins.py
+++ bzrlib/builtins.py
@@ -33,14 +33,15 @@
 from bzrlib.commands import Command, display_command
 from bzrlib.errors import (BzrError, BzrCheckError, BzrCommandError, 
                            NotBranchError, DivergedBranches, NotConflicted,
-                           NoSuchFile, NoWorkingTree, FileInWrongBranch,
-                           NotVersionedError, NotABundle)
+                           NoSuchFile, NoWorkingTree, FileExists,
+                           FileInWrongBranch, NotVersionedError, NotABundle)
 from bzrlib.merge import Merge3Merger
 from bzrlib.option import Option
 from bzrlib.progress import DummyProgress, ProgressPhase
 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
@@ -516,7 +517,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()
@@ -529,7 +529,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 = []
@@ -618,7 +618,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:
@@ -651,7 +650,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:
@@ -1016,14 +1015,20 @@
             format = get_format_type('default')
         if location is None:
             location = u'.'
-        else:
-            # The path has to exist to initialize a
-            # branch inside of it.
-            # 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)
+
+        transport = bzrlib.transport.get_transport(location)
+
+        # The path has to exist to initialize a
+        # branch inside of it.
+        # 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
+        # TODO: create-prefix
+        try:
+            transport.mkdir('.')
+        except FileExists:
+            pass
+                    
         try:
             existing_bzrdir = bzrdir.BzrDir.open(location)
         except NotBranchError:
@@ -1031,10 +1036,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()
@@ -1066,12 +1071,18 @@
                              ' 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)
-        if not transport.has('.'):
-            transport.mkdir('')
+
+        if location is None:
+            location = '.'
+
+        transport = bzrlib.transport.get_transport(location)
+        try:
+            transport.mkdir('.')
+        except FileExists:
+            pass
+
         newdir = format.initialize_on_transport(transport)
         repo = newdir.create_repository(shared=True)
         repo.set_make_working_trees(trees)

=== 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
 
 
@@ -104,3 +105,32 @@
         """Init creates no default ignore rules."""
         self.run_bzr('init')
         self.assertFalse(os.path.exists('.bzrignore'))
+
+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')
+        self.run_bzr_error(['Already a branch'], 'init', self.get_url())
+
+        # make sure using 'bzr checkout' is not suggested
+        # for remote locations missing a working tree
+        self.assertFalse(re.search(r'checkout', err))
+
+    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 '.'
+        self.run_bzr_error(['Already a branch'], 'init', self.get_url())

# revision id: larstiq at larstiq.dyndns.org-20060713181800-4e8c4f9326597d7f
# sha1: a7e718df49eac2e7f4b5dc5306445e96ec15cca1
# inventory sha1: ba540f60700bac9a247285a74e96e72928c759d8
# parent ids:
#   larstiq at larstiq.dyndns.org-20060708135701-2287cf5609d52f94
#   pqm at pqm.ubuntu.com-20060713133754-64c134fffd39fd99
# base id: pqm at pqm.ubuntu.com-20060713133754-64c134fffd39fd99
# properties:
#   branch-nick: remote-init

# message:
#   cleanup
# committer: Wouter van Heyst <larstiq at larstiq.dyndns.org>
# date: Sat 2006-07-08 15:57:01.208614111 +0200

=== modified file bzrlib/builtins.py // encoding:base64
LS0tIGJ6cmxpYi9idWlsdGlucy5weQorKysgYnpybGliL2J1aWx0aW5zLnB5CkBAIC0zMSwxNSAr
MzEsMTUgQEAKIGZyb20gYnpybGliLmNvbW1hbmRzIGltcG9ydCBDb21tYW5kLCBkaXNwbGF5X2Nv
bW1hbmQKIGZyb20gYnpybGliLmVycm9ycyBpbXBvcnQgKEJ6ckVycm9yLCBCenJDaGVja0Vycm9y
LCBCenJDb21tYW5kRXJyb3IsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90QnJhbmNo
RXJyb3IsIERpdmVyZ2VkQnJhbmNoZXMsIE5vdENvbmZsaWN0ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBOb1N1Y2hGaWxlLCBOb1dvcmtpbmdUcmVlLCBGaWxlSW5Xcm9uZ0JyYW5jaCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdFZlcnNpb25lZEVycm9yLCBOb3RBQnVuZGxl
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9TdWNoRmlsZSwgTm9Xb3JraW5nVHJlZSwg
RmlsZUV4aXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJbldyb25nQnJhbmNo
LCBOb3RWZXJzaW9uZWRFcnJvciwgTm90QUJ1bmRsZSkKIGZyb20gYnpybGliLm1lcmdlIGltcG9y
dCBNZXJnZTNNZXJnZXIKIGZyb20gYnpybGliLm9wdGlvbiBpbXBvcnQgT3B0aW9uCiBmcm9tIGJ6
cmxpYi5wcm9ncmVzcyBpbXBvcnQgRHVtbXlQcm9ncmVzcywgUHJvZ3Jlc3NQaGFzZQogZnJvbSBi
enJsaWIucmV2aXNpb24gaW1wb3J0IGNvbW1vbl9hbmNlc3RvcgogZnJvbSBienJsaWIucmV2aXNp
b25zcGVjIGltcG9ydCBSZXZpc2lvblNwZWMKIGZyb20gYnpybGliLnRyYWNlIGltcG9ydCBtdXR0
ZXIsIG5vdGUsIGxvZ19lcnJvciwgd2FybmluZywgaXNfcXVpZXQsIGluZm8KLWltcG9ydCAgYnpy
bGliLnRyYW5zcG9ydAoraW1wb3J0IGJ6cmxpYi50cmFuc3BvcnQKIGZyb20gYnpybGliLnRyYW5z
cG9ydC5sb2NhbCBpbXBvcnQgTG9jYWxUcmFuc3BvcnQKIGltcG9ydCBienJsaWIudXJsdXRpbHMg
YXMgdXJsdXRpbHMKIGZyb20gYnpybGliLndvcmtpbmd0cmVlIGltcG9ydCBXb3JraW5nVHJlZQpA
QCAtMTAwNiwxNyArMTAwNiwyMSBAQAogICAgIGRlZiBydW4oc2VsZiwgbG9jYXRpb249Tm9uZSwg
Zm9ybWF0PU5vbmUpOgogICAgICAgICBpZiBmb3JtYXQgaXMgTm9uZToKICAgICAgICAgICAgIGZv
cm1hdCA9IGdldF9mb3JtYXRfdHlwZSgnZGVmYXVsdCcpCi0gICAgICAgIHRyYW5zcG9ydCA9IGJ6
cmxpYi50cmFuc3BvcnQuZ2V0X3RyYW5zcG9ydChsb2NhdGlvbikKICAgICAgICAgaWYgbG9jYXRp
b24gaXMgTm9uZToKICAgICAgICAgICAgIGxvY2F0aW9uID0gdScuJwotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgIyBUaGUgcGF0aCBoYXMgdG8gZXhpc3QgdG8gaW5pdGlhbGl6ZSBhCi0gICAg
ICAgICAgICAjIGJyYW5jaCBpbnNpZGUgb2YgaXQuCi0gICAgICAgICAgICAjIEp1c3QgdXNpbmcg
b3MubWtkaXIsIHNpbmNlIEkgZG9uJ3QKLSAgICAgICAgICAgICMgYmVsaWV2ZSB0aGF0IHdlIHdh
bnQgdG8gY3JlYXRlIGEgYnVuY2ggb2YKLSAgICAgICAgICAgICMgbG9jYXRpb25zIGlmIHRoZSB1
c2VyIHN1cHBsaWVzIGFuIGV4dGVuZGVkIHBhdGgKLSAgICAgICAgICAgIGlmIG5vdCB0cmFuc3Bv
cnQuaGFzKCcuJyk6Ci0gICAgICAgICAgICAgICAgdHJhbnNwb3J0Lm1rZGlyKCcnKQorCisgICAg
ICAgIHRyYW5zcG9ydCA9IGJ6cmxpYi50cmFuc3BvcnQuZ2V0X3RyYW5zcG9ydChsb2NhdGlvbikK
KworICAgICAgICAjIFRoZSBwYXRoIGhhcyB0byBleGlzdCB0byBpbml0aWFsaXplIGEKKyAgICAg
ICAgIyBicmFuY2ggaW5zaWRlIG9mIGl0LgorICAgICAgICAjIEp1c3QgdXNpbmcgb3MubWtkaXIs
IHNpbmNlIEkgZG9uJ3QKKyAgICAgICAgIyBiZWxpZXZlIHRoYXQgd2Ugd2FudCB0byBjcmVhdGUg
YSBidW5jaCBvZgorICAgICAgICAjIGxvY2F0aW9ucyBpZiB0aGUgdXNlciBzdXBwbGllcyBhbiBl
eHRlbmRlZCBwYXRoCisgICAgICAgICMgVE9ETzogY3JlYXRlLXByZWZpeAorICAgICAgICB0cnk6
CisgICAgICAgICAgICB0cmFuc3BvcnQubWtkaXIoJy4nKQorICAgICAgICBleGNlcHQgRmlsZUV4
aXN0czoKKyAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgIHRy
eToKICAgICAgICAgICAgIGV4aXN0aW5nX2J6cmRpciA9IGJ6cmRpci5CenJEaXIub3Blbihsb2Nh
dGlvbikKQEAgLTEwNjIsOSArMTA2NiwxNiBAQAogICAgIGRlZiBydW4oc2VsZiwgbG9jYXRpb24s
IGZvcm1hdD1Ob25lLCB0cmVlcz1GYWxzZSk6CiAgICAgICAgIGlmIGZvcm1hdCBpcyBOb25lOgog
ICAgICAgICAgICAgZm9ybWF0ID0gZ2V0X2Zvcm1hdF90eXBlKCdkZWZhdWx0JykKKworICAgICAg
ICBpZiBsb2NhdGlvbiBpcyBOb25lOgorICAgICAgICAgICAgbG9jYXRpb24gPSAnLicKKwogICAg
ICAgICB0cmFuc3BvcnQgPSBienJsaWIudHJhbnNwb3J0LmdldF90cmFuc3BvcnQobG9jYXRpb24p
Ci0gICAgICAgIGlmIG5vdCB0cmFuc3BvcnQuaGFzKCcuJyk6Ci0gICAgICAgICAgICB0cmFuc3Bv
cnQubWtkaXIoJycpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRyYW5zcG9ydC5ta2Rpcign
LicpCisgICAgICAgIGV4Y2VwdCBGaWxlRXhpc3RzOgorICAgICAgICAgICAgcGFzcworCiAgICAg
ICAgIG5ld2RpciA9IGZvcm1hdC5pbml0aWFsaXplX29uX3RyYW5zcG9ydCh0cmFuc3BvcnQpCiAg
ICAgICAgIHJlcG8gPSBuZXdkaXIuY3JlYXRlX3JlcG9zaXRvcnkoc2hhcmVkPVRydWUpCiAgICAg
ICAgIHJlcG8uc2V0X21ha2Vfd29ya2luZ190cmVlcyh0cmVlcykKCg==

=== modified file bzrlib/tests/blackbox/test_init.py // encoding:base64
LS0tIGJ6cmxpYi90ZXN0cy9ibGFja2JveC90ZXN0X2luaXQucHkKKysrIGJ6cmxpYi90ZXN0cy9i
bGFja2JveC90ZXN0X2luaXQucHkKQEAgLTExNyw2ICsxMTcsMTEgQEAKICAgICAgICAgIyByZWx5
IG9uIFNGVFBTZXJ2ZXIgZ2V0X3VybCgpIHBvaW50aW5nIGF0ICcuJwogICAgICAgICBvdXQsIGVy
ciA9IHNlbGYucnVuX2J6cignaW5pdCcsIHNlbGYuZ2V0X3VybCgpLCByZXRjb2RlPTMpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0Q29udGFpbnNSZShlcnIsICdBbHJlYWR5IGEgYnJhbmNoJykKKyAgICAg
ICAgc2VsZi5ydW5fYnpyX2Vycm9yKFsnQWxyZWFkeSBhIGJyYW5jaCddLCAnaW5pdCcsIHNlbGYu
Z2V0X3VybCgpKQorCisgICAgICAgICMgbWFrZSBzdXJlIHVzaW5nICdienIgY2hlY2tvdXQnIGlz
IG5vdCBzdWdnZXN0ZWQKKyAgICAgICAgIyBmb3IgcmVtb3RlIGxvY2F0aW9ucyBtaXNzaW5nIGEg
d29ya2luZyB0cmVlCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmUuc2VhcmNoKHInY2hlY2tv
dXQnLCBlcnIpKQogCiAgICAgZGVmIHRlc3RfaW5pdF9leGlzdGluZ19icmFuY2hfd2l0aF93b3Jr
aW5ndHJlZShzZWxmKToKICAgICAgICAgIyBkb24ndCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBi
cmFuY2ggaGF2aW5nIGEgd29ya2luZyB0cmVlIG9yIG5vdApAQCAtMTI0LDUgKzEyOSw0IEBACiAg
ICAgICAgIHNlbGYubWFrZV9icmFuY2hfYW5kX3RyZWUoJy4nKQogCiAgICAgICAgICMgcmVseSBv
biBTRlRQU2VydmVyIGdldF91cmwoKSBwb2ludGluZyBhdCAnLicKLSAgICAgICAgb3V0LCBlcnIg
PSBzZWxmLnJ1bl9ienIoJ2luaXQnLCBzZWxmLmdldF91cmwoKSwgcmV0Y29kZT0zKQotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKHJlLnNlYXJjaChyJ2NoZWNrb3V0JywgZXJyKSkKKyAgICAgICAg
c2VsZi5ydW5fYnpyX2Vycm9yKFsnQWxyZWFkeSBhIGJyYW5jaCddLCAnaW5pdCcsIHNlbGYuZ2V0
X3VybCgpKQoK

# revision id: larstiq at larstiq.dyndns.org-20060708135701-2287cf5609d52f94
# sha1: cfd6e079a5c6ae8a24292b748732ef7a67808f7b
# inventory sha1: 1ddc0deceed534b90f4004b81a0d81a5123459bc
# parent ids:
#   larstiq at larstiq.dyndns.org-20060702164837-f605fe8406da8038
# properties:
#   branch-nick: remote-init

# 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 bzrlib/builtins.py // encoding:base64
LS0tIGJ6cmxpYi9idWlsdGlucy5weQorKysgYnpybGliL2J1aWx0aW5zLnB5CkBAIC0zOSw3ICsz
OSw3IEBACiBmcm9tIGJ6cmxpYi5yZXZpc2lvbiBpbXBvcnQgY29tbW9uX2FuY2VzdG9yCiBmcm9t
IGJ6cmxpYi5yZXZpc2lvbnNwZWMgaW1wb3J0IFJldmlzaW9uU3BlYwogZnJvbSBienJsaWIudHJh
Y2UgaW1wb3J0IG11dHRlciwgbm90ZSwgbG9nX2Vycm9yLCB3YXJuaW5nLCBpc19xdWlldCwgaW5m
bwotZnJvbSBienJsaWIudHJhbnNwb3J0IGltcG9ydCBnZXRfdHJhbnNwb3J0CitpbXBvcnQgIGJ6
cmxpYi50cmFuc3BvcnQKIGZyb20gYnpybGliLnRyYW5zcG9ydC5sb2NhbCBpbXBvcnQgTG9jYWxU
cmFuc3BvcnQKIGltcG9ydCBienJsaWIudXJsdXRpbHMgYXMgdXJsdXRpbHMKIGZyb20gYnpybGli
Lndvcmtpbmd0cmVlIGltcG9ydCBXb3JraW5nVHJlZQpAQCAtNTI0LDcgKzUyNCw3IEBACiAgICAg
ICAgICAgICAgICAgc2VsZi5vdXRmLndyaXRlKCJVc2luZyBzYXZlZCBsb2NhdGlvbjogJXNcbiIg
JSBkaXNwbGF5X3VybCkKICAgICAgICAgICAgICAgICBsb2NhdGlvbiA9IHN0b3JlZF9sb2MKIAot
ICAgICAgICB0cmFuc3BvcnQgPSBnZXRfdHJhbnNwb3J0KGxvY2F0aW9uKQorICAgICAgICB0cmFu
c3BvcnQgPSBienJsaWIudHJhbnNwb3J0LmdldF90cmFuc3BvcnQobG9jYXRpb24pCiAgICAgICAg
IGxvY2F0aW9uX3VybCA9IHRyYW5zcG9ydC5iYXNlCiAKICAgICAgICAgb2xkX3JoID0gW10KQEAg
LTY0NSw3ICs2NDUsNyBAQAogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBuYW1l
ID0gb3MucGF0aC5iYXNlbmFtZSh0b19sb2NhdGlvbikgKyAnXG4nCiAKLSAgICAgICAgICAgIHRv
X3RyYW5zcG9ydCA9IGdldF90cmFuc3BvcnQodG9fbG9jYXRpb24pCisgICAgICAgICAgICB0b190
cmFuc3BvcnQgPSBienJsaWIudHJhbnNwb3J0LmdldF90cmFuc3BvcnQodG9fbG9jYXRpb24pCiAg
ICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgdG9fdHJhbnNwb3J0Lm1rZGlyKCcuJykK
ICAgICAgICAgICAgIGV4Y2VwdCBlcnJvcnMuRmlsZUV4aXN0czoKQEAgLTEwMDYsNyArMTAwNiw3
IEBACiAgICAgZGVmIHJ1bihzZWxmLCBsb2NhdGlvbj1Ob25lLCBmb3JtYXQ9Tm9uZSk6CiAgICAg
ICAgIGlmIGZvcm1hdCBpcyBOb25lOgogICAgICAgICAgICAgZm9ybWF0ID0gZ2V0X2Zvcm1hdF90
eXBlKCdkZWZhdWx0JykKLSAgICAgICAgdHJhbnNwb3J0ID0gZ2V0X3RyYW5zcG9ydChsb2NhdGlv
bikKKyAgICAgICAgdHJhbnNwb3J0ID0gYnpybGliLnRyYW5zcG9ydC5nZXRfdHJhbnNwb3J0KGxv
Y2F0aW9uKQogICAgICAgICBpZiBsb2NhdGlvbiBpcyBOb25lOgogICAgICAgICAgICAgbG9jYXRp
b24gPSB1Jy4nCiAgICAgICAgIGVsc2U6CkBAIC0xMDYyLDcgKzEwNjIsNyBAQAogICAgIGRlZiBy
dW4oc2VsZiwgbG9jYXRpb24sIGZvcm1hdD1Ob25lLCB0cmVlcz1GYWxzZSk6CiAgICAgICAgIGlm
IGZvcm1hdCBpcyBOb25lOgogICAgICAgICAgICAgZm9ybWF0ID0gZ2V0X2Zvcm1hdF90eXBlKCdk
ZWZhdWx0JykKLSAgICAgICAgdHJhbnNwb3J0ID0gZ2V0X3RyYW5zcG9ydChsb2NhdGlvbikKKyAg
ICAgICAgdHJhbnNwb3J0ID0gYnpybGliLnRyYW5zcG9ydC5nZXRfdHJhbnNwb3J0KGxvY2F0aW9u
KQogICAgICAgICBpZiBub3QgdHJhbnNwb3J0LmhhcygnLicpOgogICAgICAgICAgICAgdHJhbnNw
b3J0Lm1rZGlyKCcnKQogICAgICAgICBuZXdkaXIgPSBmb3JtYXQuaW5pdGlhbGl6ZV9vbl90cmFu
c3BvcnQodHJhbnNwb3J0KQoK

=== modified file bzrlib/tests/blackbox/test_init.py // encoding:base64
LS0tIGJ6cmxpYi90ZXN0cy9ibGFja2JveC90ZXN0X2luaXQucHkKKysrIGJ6cmxpYi90ZXN0cy9i
bGFja2JveC90ZXN0X2luaXQucHkKQEAgLTExMiwxMSArMTEyLDEzIEBACiAgICAgCiAgICAgZGVm
IHRlc3RfaW5pdF9leGlzdGluZ19icmFuY2goc2VsZik6CiAgICAgICAgICMgd2hlbiB0aGVyZSBp
cyBhbHJlYWR5IGEgYnJhbmNoIHByZXNlbnQsIG1ha2UgbWVudGlvbgotICAgICAgICBzZWxmLnJ1
bl9ienIoJ2luaXQnLCBzZWxmLmdldF91cmwoKSkKKyAgICAgICAgc2VsZi5tYWtlX2JyYW5jaCgn
LicpCisKKyAgICAgICAgIyByZWx5IG9uIFNGVFBTZXJ2ZXIgZ2V0X3VybCgpIHBvaW50aW5nIGF0
ICcuJwogICAgICAgICBvdXQsIGVyciA9IHNlbGYucnVuX2J6cignaW5pdCcsIHNlbGYuZ2V0X3Vy
bCgpLCByZXRjb2RlPTMpCiAgICAgICAgIHNlbGYuYXNzZXJ0Q29udGFpbnNSZShlcnIsICdBbHJl
YWR5IGEgYnJhbmNoJykKIAotICAgIGRlZiB0ZXN0X2luaXRfc29tZXRoaW5nKHNlbGYpOgorICAg
IGRlZiB0ZXN0X2luaXRfZXhpc3RpbmdfYnJhbmNoX3dpdGhfd29ya2luZ3RyZWUoc2VsZik6CiAg
ICAgICAgICMgZG9uJ3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgYnJhbmNoIGhhdmluZyBhIHdv
cmtpbmcgdHJlZSBvciBub3QKICAgICAgICAgIyB3aGVuIHRoZSBicmFuY2ggaXRzZWxmIGlzIHJl
bW90ZS4KICAgICAgICAgc2VsZi5tYWtlX2JyYW5jaF9hbmRfdHJlZSgnLicpCgo=

# revision id: larstiq at larstiq.dyndns.org-20060702164837-f605fe8406da8038
# sha1: bd7fdab5b720d963a29ae8690db48ab60988bdb4
# inventory sha1: 02582aa7193e2f261c7f48a493a8ebce478a8aa5
# parent ids:
#   larstiq at larstiq.dyndns.org-20060702161805-25638faa09cd04bd
# 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