From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry Warsaw Newsgroups: gmane.emacs.devel Subject: Looms and Pipelines (was Re: Git mirrors) Date: Mon, 17 Oct 2011 14:49:04 -0400 Organization: Damn Crazy Followers of the Horn Message-ID: <20111017144904.1d9dce2b@resist.wooz.org> References: <871uuksdxi.fsf@lifelogs.com> <87lissh32y.fsf@wanadoo.es> <87zkh8e286.fsf@catnip.gol.com> <87d3e4gttq.fsf@wanadoo.es> <87ehyjrhxh.fsf@uwakimon.sk.tsukuba.ac.jp> <87d3e2rfte.fsf@uwakimon.sk.tsukuba.ac.jp> <878voqfiaw.fsf@wanadoo.es> <87zkh4bhho.fsf@wanadoo.es> <87zkh4nrcr.fsf@uwakimon.sk.tsukuba.ac.jp> <87zkh0ozjz.fsf@uwakimon.sk.tsukuba.ac.jp> <87sjmrq18g.fsf@uwakimon.sk.tsukuba.ac.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA256; boundary="Sig_/FiKKpRTL/pfg.ntBIv+/OK4"; protocol="application/pgp-signature" X-Trace: dough.gmane.org 1318877373 6226 80.91.229.12 (17 Oct 2011 18:49:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 17 Oct 2011 18:49:33 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 17 20:49:29 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RFsFb-0000hZ-4e for ged-emacs-devel@m.gmane.org; Mon, 17 Oct 2011 20:49:27 +0200 Original-Received: from localhost ([::1]:37979 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFsFa-0003ni-MI for ged-emacs-devel@m.gmane.org; Mon, 17 Oct 2011 14:49:26 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:39382) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFsFX-0003nb-Up for emacs-devel@gnu.org; Mon, 17 Oct 2011 14:49:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFsFW-0008LZ-B2 for emacs-devel@gnu.org; Mon, 17 Oct 2011 14:49:23 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:32992) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFsFV-0008LJ-Oa for emacs-devel@gnu.org; Mon, 17 Oct 2011 14:49:22 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1RFsFT-0000dp-7v for emacs-devel@gnu.org; Mon, 17 Oct 2011 20:49:19 +0200 Original-Received: from mail.wooz.org ([216.15.33.194]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Oct 2011 20:49:19 +0200 Original-Received: from barry by mail.wooz.org with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Oct 2011 20:49:19 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 115 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: mail.wooz.org X-Newsreader: Claws Mail 3.7.9 (GTK+ 2.24.6; x86_64-pc-linux-gnu) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:145274 Archived-At: --Sig_/FiKKpRTL/pfg.ntBIv+/OK4 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Oct 17, 2011, at 08:57 PM, Stephen J. Turnbull wrote: >It is most definitely not habit in my case. It's lack of colocated >branches, and lack of technical documentation for pipelines and looms. >I need technical documentation because I have a very clear idea of >what workflows I want to implement, and the use cases and tutorials >published for those tools don't match my workflow. Sadly it seems >pipelines can't do it (they're different from Mercurial queues) and >looms I've never figured out. I personally dislike colocated branches, and it's one of the things that drives me crazy about using Python's Mercurial repo. I always end up splitting it into one-branch-per-directory, but twisting the tool's basic workflow model into my own comfortable workflow causes problems (e.g. a rec= ent commit of mine where I somehow managed to double-merge a branch). That aside, I recognize that some people really like colocated branches, so I'm glad bzr is going to have support for them in the next release. Looms and pipelines provide different use cases, IMO. Both are useful for managing a "stack" of related but separable changes. Imagine you need to m= ake a change to your database, your model, and your UI. These different layers can be represented in that stack of branches. You start by making a change= in the database and commit those, then move up to make a related change in your model, and commit those. When you get to your UI changes, you realize that your database is missing something critical, so you pop back down to that layer and make the change. Then using pipelines/looms, you jump back up the stack, and let bzr automatically merge your database layer changes to every branch up the stack. Why manage these as a stack of related changes, i.e. branches? For one thi= ng, it lets you have smaller, more manageable, more reviewable changes. Maybe = you want to share your database changes without sharing your UI changes. Maybe someone else beat you to committing the model changes, but your other chang= es are still relevant. Maybe someone changed the public API between the model and UI and you'd like to merge their changes in at the appropriate layer, b= ut keep them separate from your own changes. Maybe you just want to look at a diff of the model changes and ignore everything above and below. Looms and pipelines help with all the nasty bookkeeping that you'd normally be forced= to do to keep all the relationships together. I'd say that the primary difference between pipelines and looms is that the latter version controls those relationships. I.e. the metadata that descri= bes those relationships between your stacked branches is under bzr. That means you can share, push, publish, and pull a loom as one unit, maintaining those relationships. Yes, you can also separate your stacked branches (called "threads" in loom terminology), into completely independent branches. Pipelines on the other hand, don't version control that metadata, but the advantage is that every branch in a pipeline is a completely normal Bazaar branch, so there's not much special about them. OTOH, if you're going to p= ull a loom from me, you need to have the plugin installed locally because threa= ds *are* special. If you're familiar with the Debian quilt system, there is a *lot* of similarity between looms/pipeline and quilt. So much in fact, that the bzr team is considering using looms/pipelines as a mapping to quilts for Ubuntu= 's source branches on Launchpad. The major disadvantage of both looms and pipelines is that they are current= ly implemented as plugins, and while they are kept up-to-date and compatible w= ith new bzr releases, I'm hopeful that at some point the loom feature (which I prefer) will be brought into core bzr. Note too that loom/pipeline are completely optional for any particular bran= ch you work on. You can still install the plugins and use vanilla bzr, since = you need to initialize a branch to use (e.g.) looms explicitly. Cheers, -Barry --Sig_/FiKKpRTL/pfg.ntBIv+/OK4 Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAEBCAAGBQJOnHigAAoJEBJutWOnSwa/kSgP/1QsZFJ8iK8zeEHeEjO8cI0L hrckP4YGAmMlJ1koPxJsZnt7qVMM/eWTr2yuZJqS65sQa2WFUMJQO5xIfa1K/lgu Ioz8+q7KOoofCG+/FFGwo3TrrpCwOFZKR2t6tuHVXyp4yHdAQbD/ELyf/+mEwouu ihQdzWkAUWrnPW9VBIet+kG6YfCmmcmpTrvNDX3ywfLM6AawtmHuCcpoBXsh7Z+z rP/C/PmUkek1S6lwwNO4cNUyuU24EoWxIcOsAeXmYYECDmx+zEC+VmTAagddtXry SiBOjpqNs4mwQbNnGJ2dJeY+UIEBj2zeys/jPI7yzWDkC1uTzQNcF8B2ZoO484Wg 2QptRX0fpcIXCi0jkwd3k8tTfatqiPFoo1pPWAUMC0iyuxhHyrnGMMTmMAvpc0kB jtg7fe5eY8sNQZBtf73CurUtvc766vb6gaoqJCwzFWY8EEnkOPTQTL7IzvRgPkvK REDBrlWtN44j7fw1lTcV50vn35GFZrc4m7atFZiv+kCWg/oEZqnRB6D3dkoy/yB0 6UHev5kuYTHK/ohxhMouqkhcnIcI/Valz6lCXwoJ6VxY28sMaA5JhKSUj2WKdsyW /uPcQqbc4CgbsaTeQlt0WsTm6YluQfWJLqmVpSYfZJthLHLZbwuj92vWWxpsOEQr UGnLQEe9m5JoaC3zyX8z =n5pS -----END PGP SIGNATURE----- --Sig_/FiKKpRTL/pfg.ntBIv+/OK4--