bzr push, working directory, bzrtools

John Arbash Meinel john at arbash-meinel.com
Thu Nov 3 10:47:46 GMT 2005


William Dode wrote:
> On 02-11-2005, John A Meinel wrote:
> 
>>This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
>>--------------enigD6CFEB8B028568A4120E4E8E
>>Content-Type: text/plain; charset=UTF-8
>>Content-Transfer-Encoding: quoted-printable
>>
>>Matthieu Moy wrote:
>>
>>>Hi,
>>>=20
>>>I've updated my bzr, and noticed there was now a native "bzr push". I
>>>suppose the one in bzrtools can now be removed.
>>>=20
>>>The push command doen't create a working directory. The documentation
>>>should mention the way to re-create this working directory when the
>>>user has a local access to the push location.
>>>=20
>>>It seems "revert" does the trick. Perhaps there's a better way.
>>>=20
>>
>>Robert and I have been discussing if "bzr push" should modify the
>>working directory when it is available. (I recently create a patch for
>>creating branches without working directories, for cases like a
>>published repository, which doesn't need them).
> 
> 
> I think it should be an option to create the working tree with bzr push,
> it's very usefull if somebody want to download only the working tree
> (with rsync --exclude .bzr for example), maybe they don't have bzr or
> they don't care of the history...

We're just trying to work out the details.
The problem is, that if you create a working tree, then you really
should *merge* into that working tree, not just overwrite the files that
are there.

Which means actually reading the current values, and figuring out how to
merge it, and potentially having conflicts, etc.

If you have rsync available, there is always one of the rsync push
plugins (which overwrite the working tree, mine even deletes 'unknowns',
because I prefer to cleanup the remote tree).

I don't believe most other SCM tools just have the working tree
available for download (SVN and CVS don't, Arch doesn't, I'm not sure
about darcs/bk/etc).
So what your asking for might actually just be uncommon, since nobody
else seems to support getting the latest version, without actually
having the SCM tool. (Though I suppose with CVS you could download the
,v files, and hack out all of the extra info, since it stores the last
revision in full text).


> 
> 
>>I believe Robert was working on some way to make the bzrtools' push
>>either not load itself if it finds the builtin one, or somehow add
>>functionality to it (copy the files using rsync rather than plain sftp
>>for instance). I'm not sure where he got on this.
>>
>>For recreating the working tree, I believe revert is the only method
>>currently implemented.
> 
> 
> Sometimes bzr is not available on the server, specialy when people will
> push to ftp.
> 

It's something that I think we can add, but it would mean a lot of
changes to the internals (WorkingTree now needs to use a Transport,
rather than just using open(), os.path.exists, etc)
and more importantly, it might end up being a headache and slow.

If people feel it is truly important, I think we'll see it happen.

I think right now the problem is that everything is created in .bzr, so
it looks like there isn't anything in the remote location. Which is why
before I implemented push, I implemented trees without working
directories at all, so that the "branch-format" file ends up at the
root, rather than inside .bzr/.

I'm pretty sure a form of working-tree-less branches will end up in
mainline. Mine isn't mergable right now, because my push conflicts
(slightly) with Robert's push. But if there is enough interest, I'll
make sure to clean it up, and get it merged in.

John
=:->
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20051103/a5950208/attachment.pgp 


More information about the bazaar mailing list