Recipes vs. Looms vs. pipelines

Aaron Bentley aaron at canonical.com
Wed Dec 16 21:58:36 GMT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

James Westby wrote:
> I realise that there are other advantages, but choosing pipelines just
> because they use real branches for the "threads," wouldn't be a wise
> choice in my eyes. It's not something that can't fit in to the model
> of looms, so we can always add it there.

Right, it's not a trump card.  But in my view, adding configuration data
to threads basically makes them colocated branches, and having two kinds
of branches that work very differently is unnecessarily complicated.

> From my little understanding, I get the impression that pipelines are
> more for organising your local work, rather than for collaboration
> on a set of changes, which is why I haven't given them the attention
> until now. However, it sounds like that may be more of an artifact of
> not having co-located branches than part of the design.

I wanted to focus on making pipelines a really good way of organizing
local work.  At the same time, I had noticed that people seemed to find
the loom methods of collaboration confusing, saying thinks like "But
*when* should I record?", and "why doesn't push work?".  So I decided to
do syncing using an unversioned list of pipes rather than a loom-style
snapshot, and to provide a new "sync-pipeline" command instead of
overriding push and pull.

> I have just read http://wiki.bazaar.canonical.com/BzrPipeline, and
> I feel like I understand the workflow a little better now. To my
> reading it differs little from loom though, different analogy,
> "push" rather than "pull"

Actually, "sync-pipeline" rather than "push" or "pull".

>, branches not proto-branches. Am I missing
> something?

There are a lot of similarities.  Some more differences are:
- - automatic storing/restoring of uncommitted changes with switch-pipe.
- - uncommitted changes in another pipe can be merged.

I think that there are significant improvements to the command set:

In loom, up-thread and down-thread are asymmetric.  The analogue of
down-thread is switch-pipe, and the analogue of up-thread --auto is pump.

The command for removing a pipe is called "remove-pipe", whereas the
command for removing a thread is called "combine-thread".

pipeline has lp-submit to submit a merge proposal for a pipe to
Launchpad.  It is impossible to submit a merge proposal for a thread to
launchpad, because threads aren't addressable.

pipeline provides pipe-patches, to export the pipeline as a series of
patches.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkspWAkACgkQ0F+nu1YWqI14zgCeLFoRPzBRVSGqq+sIb/WfAafg
enoAn1etdoa6S87JY9VcvWonSzd7UT3t
=yEOz
-----END PGP SIGNATURE-----



More information about the ubuntu-distributed-devel mailing list