[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