[RFC] Push via e-mail?
John A Meinel
john at arbash-meinel.com
Sun Feb 19 03:55:13 GMT 2006
Alexander Belchenko wrote:
> I need to organize cooperative work with my co-worker. Unfortunately he
> cannot use bzr itself for push and pull changes. We may use only e-mail.
> I'd like to know is there possible to create plugin for pushing changes
> from one to other (assume that branches not diverged) via e-mail?
>
> I suppose this plugin should prepare archive (zip or tar.gz) with all
> needed info for pushing: new items from revision-store, new and updates
> items from weave-store and probably new inventory.weave? And when such
> archive will be received via e-mail on another end plugin should
> implement pull operation based on this data.
>
> Any hints how to implement this behaviour?
>
> --
> Alexander
It depends how easy/hard you want this to be. A long time ago I created
a plugin which did exactly this by generating a 'changeset'. Which
looked a lot like a patch with all the extra meta-information that you
would need so that it could re-create the information on the other side.
It has bit-rotted a little, and I also wanted to revise it to work with
the new RIO formats, and some other stuff. I have a work-in-progress
branch here:
http://bzr.arbash-meinel.com/branches/bzr/w-changeset/
Where instead of making it as a plugin, I wanted to add it as an
internal command. That branch is capable of creating changesets, which
contain all the information they need, but I haven't hooked up the
ability to read the information, and put it into the local store.
(The early changeset code was back with format 4 branches, and needed to
be updated for weaves anyway, though I have the branch around somewhere
if you want an idea of how to start).
The goal of changesets was to be something that you could send to a
mailing list, and they could review, and pull without having to have a
branch accessible.
If you are okay with using a tarball, etc. You can do it a lot easier
that a text-format changeset.
The easiest thing, in my mind, would be to create a tarball with all
weaves that were modified by the given revisions. And plain text
inventories, and plain text revisions. And then you can just use
Weave.join() on each weave, Weave.add() for each inventory, and
revision_store.add() for each revision. It would be pretty simple.
But if you want to take my Changeset branch, and finish what I started,
you could end up with a very nice system.
John
=:->
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060218/794e4da0/attachment.pgp
More information about the bazaar
mailing list