{"id":1016,"date":"2008-02-22T14:48:08","date_gmt":"2008-02-22T04:48:08","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/2008\/02\/22\/bzr-loom-a-bzr-plugin-with-quilt-like-functionality\/"},"modified":"2008-02-22T14:48:08","modified_gmt":"2008-02-22T04:48:08","slug":"bzr-loom-a-bzr-plugin-with-quilt-like-functionality","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2008\/02\/22\/bzr-loom-a-bzr-plugin-with-quilt-like-functionality\/","title":{"rendered":"bzr-loom &#8211; a bzr plugin with quilt like functionality"},"content":{"rendered":"<p><a href=\"https:\/\/edge.launchpad.net\/bzr-loom\/\">A bzr plugin to assist in developing focused patches. in Launchpad<\/a><\/p>\n<p>I use quilt a lot for development. Currently, If I had to choose between BK and quilt &#8211; I&#8217;d choose quilt.<\/p>\n<p>I use bzr in other development projects like MemberDB. I use git as a frontend for SVN (it is *so* much faster than the svn client and incredibly more space efficient&#8230; A copy of the entire history of a tree stored in git is usually less than a single svn checkout). I also use darcs (and quilt) for offlineimap and just about every other revision control tool at some point.<\/p>\n<p>So this is a bit of a discussion about how I work and how bzr-loom would help it&#8230; (I&#8217;ve wished for a long time that bk had stuff like this&#8230; bk collapse is just not what I want, although others use it lots).<\/p>\n<p>The loom plugin to bzr looks like a fantasy world of goodness where the revision control system has some knowledge of these work in progress patches. The ability to push and pull looms around the place seems awfully nice.<\/p>\n<p>What&#8217;s even more awsome is that you can push your set of patches up to a normal bzr branch and they become normal commits! i.e. you get rid of the whole &#8220;convert quilt patches into changesets&#8221; pain and just push.<\/p>\n<p>Revision tracking them (so you can see what you&#8217;ve changed in your patch set) is also nice (I have thought about keeping patches\/ in a bzr repo for this purpose). So I can now get a history of my patchset against various mainline versions.<\/p>\n<p>One of the big advantages of quilt is speed &#8211; it&#8217;s lightning fast (basically being a diff and patch wrapper) . Hopefully bzr looms continue in this fine tradition (and I wish other systems would get something like it too)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A bzr plugin to assist in developing focused patches. in Launchpad I use quilt a lot for development. Currently, If I had to choose between BK and quilt &#8211; I&#8217;d choose quilt. I use bzr in other development projects like &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2008\/02\/22\/bzr-loom-a-bzr-plugin-with-quilt-like-functionality\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13,14],"tags":[],"class_list":["post-1016","post","type-post","status-publish","format-standard","hentry","category-memberdb","category-mysql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-go","jetpack-related-posts":[{"id":793,"url":"https:\/\/www.flamingspork.com\/blog\/2007\/02\/14\/svn-shows-its-true-colours\/","url_meta":{"origin":1016,"position":0},"title":"SVN shows its&#8217; true colours","author":"Stewart Smith","date":"2007-02-14","format":false,"excerpt":"I thought \"svn\", I typed \"cvs\". Hrrm... sounds about right. In other revision control news, using quilt to manage work-in-progress patches in conjunction with BK is proving really, really great. I feel like an idiot having lived this long and not worked this way. I have a feeling that if\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1749,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/11\/16\/bazaar-importmbox-plugin\/","url_meta":{"origin":1016,"position":1},"title":"Bazaar importmbox plugin","author":"Stewart Smith","date":"2009-11-16","format":false,"excerpt":"Releasing and announcing software is win! I've had this bumming around for a bit, and for me (and I think others hacking on MySQL) it's been rather useful. Simple plugin that takes each email in an mbox, applies the patch and commits it with the correct author to a bzr\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1919,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/05\/20\/exporting-a-set-of-bzr-revisions-as-a-quilt-series\/","url_meta":{"origin":1016,"position":2},"title":"Exporting a set of bzr revisions as a quilt series","author":"Stewart Smith","date":"2010-05-20","format":false,"excerpt":"There has to be a better way than this... but it does work (at least for revisions 11 through 141): for rev in `seq 11 141`; do if [ -z \"`bzr diff -r\\`expr $rev - 1\\`..$rev|diffstat -p0 -l|grep ^tests`\" ]; then (bzr log -r$rev --forward --log-format=long | sed -e 's\/^\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1059,"url":"https:\/\/www.flamingspork.com\/blog\/2008\/03\/31\/twitter-updates-for-2008-03-31\/","url_meta":{"origin":1016,"position":3},"title":"Twitter Updates for 2008-03-31","author":"Stewart Smith","date":"2008-03-31","format":false,"excerpt":"@pjf: it's 12:14pm atm. daylight saving not over for 1 more week # @pjf my phone thought it was over... computer didn't # so the \"Windows Update\" on my phone obviously did no good # @brianaker: yes. # i wonder why MMS doesn't work on my phone.. GAH # why\u2026","rel":"","context":"In &quot;Twitter&quot;","block_context":{"text":"Twitter","link":"https:\/\/www.flamingspork.com\/blog\/category\/from-twitter\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3413,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/09\/24\/disk-usage-bzr-vs-git\/","url_meta":{"origin":1016,"position":4},"title":"Disk usage: bzr vs git","author":"Stewart Smith","date":"2013-09-24","format":false,"excerpt":"For MySQL 5.1, 5.5 and 5.6 in the same repository, after repacking: bzr: 269MB (217MB pack, 52MB indicies) git: 177MB repo (152MB pack) One thing I'll say is that BZR is always more chatty over the network and is substantially slower than GIT in pulling a fresh copy.","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3655,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/01\/14\/converting-mysql-trees-to-git\/","url_meta":{"origin":1016,"position":5},"title":"Converting MySQL trees to git","author":"Stewart Smith","date":"2014-01-14","format":false,"excerpt":"I have put up a set of scripts on github: https:\/\/github.com\/stewartsmith\/bzr-to-git-conversion-scripts. Why do I need these? Well... if only bzr fast-export|git fast-import worked flawlessly for large, complex and old trees. It doesn't. Basically, when you clone this repo you can run \".\/sync-BLAH.sh\" and it'll pull BZR trees for the project,\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=1016"}],"version-history":[{"count":0,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1016\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=1016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=1016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=1016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}