checkout to another machine fails with 'Parent does not exist'
John Arbash Meinel
john at arbash-meinel.com
Thu Dec 14 21:17:49 GMT 2006
Alexander Belchenko wrote:
> I try to make checkout from my machine to another over sftp:
>
> $ bzr co --lightweight . sftp://XXX.XXX.XXX.XXX/~/src/project
>
> and got error:
>
> Parent of "sftp://XXX.XXX.XXX.XXX/~/src/project" does not exist.
>
> On remote machine bzr is not installed.
> On local machine installed bzr 0.12.
> Both local and remote machines are running on Linux.
This won't really ever work, as the type of operations we use to update
a working tree are different than what we use to update the meta
information. (Working tree goes directly through open, os.stat(), etc,
while meta-data goes through Transport).
>
> Note that push to this location works OK.
> But I cannot create working tree on remote machine because I don't have bzr there
> because remote machine has only python 2.3.
Your best bet is to either use bzrtools rspush, or my bzr-rsync plugin
http://launchpad.net/products/bzr-rsync.
Mine will even work when there is a shared remote repository, though it
may not be 100% up-to-date with the latest bzr.dev API. It will use
standard push to update the meta data, and then rsync to update the
working tree. It also defaults to only rsyncing files that have changed,
which helps prevent stepping on toes, and might make it a little faster,
since it doesn't have to check as many files.
...
> Looking at the help of checkout command it's not clear that checkout argument
> TO_LOCATION should be *only* local filepath. Do I need file a bug report?
>
I think it would be fair enough to have 'bzr checkout' fail with a
'cannot create remote working tree' or NotLocalURL, or something like that.
>
> Alexander
>
> P.S. Does anyone try to create standalone bzr executable for Linux?
>
You can always install python into $HOME and run things from there. The
standalone bzr executable on windows is just a python interpreter, and
libraries, etc.
Also, under Linux, you are much more likely to run into library
incompatibilities (the wrong version of libc, etc).
You could create a static build of python, which would then include all
of the libc libraries, etc. It would get pretty big, but it would
probably work.
If you are interested, I might be able to give you some hints. But most
likely it isn't worth the effort.
There has also been talk about some sort of 'remote-update' plugin,
which could use the Transport API to create remote files.
John
=:->
More information about the bazaar
mailing list