<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>fishsoup &#187; Git</title>
	<atom:link href="http://blog.fishsoup.net/category/coding/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fishsoup.net</link>
	<description>Owen Taylor on Coding, Food, etc.</description>
	<lastBuildDate>Wed, 09 Nov 2011 03:13:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.fishsoup.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>fishsoup &#187; Git</title>
		<link>http://blog.fishsoup.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.fishsoup.net/osd.xml" title="fishsoup" />
	<atom:link rel='hub' href='http://blog.fishsoup.net/?pushpress=hub'/>
		<item>
		<title>Review Board vs. git-bz</title>
		<link>http://blog.fishsoup.net/2009/09/15/review-board-vs-git-bz/</link>
		<comments>http://blog.fishsoup.net/2009/09/15/review-board-vs-git-bz/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 22:52:15 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://blog.fishsoup.net/?p=194</guid>
		<description><![CDATA[I&#8217;ve recently been spending some time working on a light-weight web-based patch review tool, called Splinter, to go along with Bugzilla. I&#8217;m not quite ready to reveal it to the world, but I wanted to deal in advance with a question that is certainly going to come up &#8211; why not use Review Board? This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.fishsoup.net&amp;blog=1430594&amp;post=194&amp;subd=owtaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been spending some time working on a light-weight web-based patch review tool, called Splinter, to go along with Bugzilla. I&#8217;m not quite ready to reveal it to the world, but I wanted to deal in advance with a question that is certainly going to come up &#8211; why not use <a href="http://www.review-board.org/">Review Board</a>? This is a very reasonable question to ask, especially since Splinter was directly inspired by seeing Review Board and saying to myself &#8220;I want one of those!&#8221;</p>
<p>In thinking about this, I realized that the comparison wasn&#8217;t really between Review Board and Splinter, but between Review Board and attaching patches in Bugzilla. You really have to look at the overall process. How do you go from a enhancement request or reported crash, to a first candidate code change, to reviews on that change, to a final version of your change, to pushing those changes to the official repository, to closing the original report? <a href="http://blog.fishsoup.net/2009/09/05/git-bz-push/">git-bz</a> automates and makes convenient large sections of this. Splinter is just a solution for a gap in the process &#8211; how do you review a patch once it&#8217;s attached to Bugzilla? But Review Board replaces the entire thing: you don&#8217;t attach patches in Bugzilla, you just link to a review request that you&#8217;ve filed (with your patch) in Review Board.</p>
<p>First I should list some of the advantages that Review Board would bring to the overall process: first, it has a very slick and well developed web interface for reviewing and commenting on patches. The tool I&#8217;ve been working on is pretty nice for a couple of weekends of work, but there&#8217;s only so far you can go in a couple of weekends. Second, Review Broad has a very well-defined workflow. Each review request is submitted to a person or group for review. You are presented with your outbox: your patches waiting for review, and your inbox: patches that are waiting on review. With our Bugzilla, the process is buried in a large and complex user interface and is much less explicit. (Attachment flags can be used to do explicit review requests in Bugzilla, but we don&#8217;t use them on bugzilla.gnome.org.) Finally if we used Review Board for patch reviews in GNOME, we&#8217;d reduce the amount of noise for bug reporters. While I imagine it&#8217;s exciting to see two developers discussing obscure details of a patch to fix your reported crash, I also can imagine that it can be confusing and intimidating, and maybe people would prefer to just get a high-level summary when a patch was comimtted rather than all the details in their mailbox.</p>
<p>So, Review Board stacks up pretty well for web user interface and developer workflow. Where things become more problematical are the integration with Git and the integration with Bugzilla.</p>
<p>The normal way to interact with Git is from the command line, so any integration of a review tool with Git will start there. While the web portions of Review Board are highly advanced, the Review Board post-review command-line leaves a lot to be desired when compared to git-bz. It doesn&#8217;t follow the git command line conventions. It can&#8217;t take patches from Review Board and apply them locally. It can&#8217;t insert references to the review into the commit messages. And so forth. That&#8217;s partly a question of attention, and probably even more a question of being cross-version-control-system. There&#8217;s only so much you can do while handling Subversion, and CVS, and Git, and Mercurial, and &#8230;. Certainly a specific &#8220;git-rb&#8221; tool is possible that does many of the things that git-bz does is possible &#8211; the lack of such a tool isn&#8217;t an inherent defect of Review Board, just a current lack.</p>
<p>There is a more fundamental problem here &#8211; a review in Review Board is of a single diff (potentially with multiple revisions), but that&#8217;s not very natural to how people work with Git. More complex enhancements are almost always done as <em>patchsets</em>, with each patch in the set being kept as standalone as possible. In the Bugzilla/git-bz workflow, the entire set of patches attached to a bug logically makes up a patch set. git-bz makes it easy to attach a series of commits to a bug as patches or apply all the patches from a bug to a local branch. Individual patches can be commented upon, marked as accepted-commit_now, replaced with newer versions, but it&#8217;s only when everything has been agreed upon and pushed that the bug can is closed. Trying to handle this explicitly in the Review Board user interface would require some substantial changes: you&#8217;d want a Review Request to cover an entire patch set, but have Reviews apply to individual patches within it.</p>
<p>The issues with using Bugzilla and Review Board together lie both on the user side and on the infrastructure-development side. On the user side, there&#8217;s a simple but non-trivial problem that we&#8217;d suddenly have two different identifiers and URLs for the same issue &#8211; there would be the Bugzilla bug URL but also the review board review request URL. Which one should you reference in in your commit message? Which one do you search for? There would also be two separate accounts to deal with.</p>
<p>On the infrastructure side, there&#8217;s the standard work of installing, maintaining, upgrading, etc. Beyond that, we might want to try and figure out some sort of single-sign-on across Bugzilla and Review Board to help with the multiple accounts problem. We&#8217;d have to have some automated process to keep the repository list in Review Board in sync with the 600+ GNOME repositories and auto-create maintainers groups for the repositories. We&#8217;d need a bugzilla extension to link to reviews. We&#8217;d need a Review Board extension to update bugs in Bugzilla when a review was created.</p>
<p>My summary here is that moving GNOME to Review Board for patch review would be quite a bit of work and a substantial change in our current work habits. There would be significant advantages, but also some definite downsides in having to juggle two systems. If it&#8217;s possible to, with a small addition on top of Bugzilla, get a reasonable approximation to the web-based patch review aspects of Review Board without adding an entire second system, I think that&#8217;s pretty interesting. Once I put a demo of Splinter out there (days, not weeks), you can judge that &#8220;if&#8221; for yourself.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/owtaylor.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/owtaylor.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/owtaylor.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/owtaylor.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/owtaylor.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/owtaylor.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/owtaylor.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/owtaylor.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.fishsoup.net&amp;blog=1430594&amp;post=194&amp;subd=owtaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.fishsoup.net/2009/09/15/review-board-vs-git-bz/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a45426932356d75ac19f68c0c958f800?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Owen</media:title>
		</media:content>
	</item>
		<item>
		<title>git bz push</title>
		<link>http://blog.fishsoup.net/2009/09/05/git-bz-push/</link>
		<comments>http://blog.fishsoup.net/2009/09/05/git-bz-push/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 18:45:19 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://blog.fishsoup.net/?p=178</guid>
		<description><![CDATA[A while ago I blogged about my git-bz tool for Git and Bugzilla integration. If you recall, the original idea was: git bz attach http://bugzilla.example.com/show_bug.cgi?id=43215 HEAD But that left a gap &#8211; once you were happy with the patch, how did you close the bug? You had to go back to your web brower, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.fishsoup.net&amp;blog=1430594&amp;post=178&amp;subd=owtaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A while ago I <a href="http://blog.fishsoup.net/2008/11/16/git-bz-bugzilla-subcommand-for-git/">blogged about my  git-bz tool</a> for Git and Bugzilla integration. If you recall, the original idea was:</p>
<pre>git bz attach http://bugzilla.example.com/show_bug.cgi?id=43215 HEAD</pre>
<p>But that left a gap &#8211; once you were happy with the patch, how did you close the bug? You had to go back to your web brower, and twiddle a bunch of form controls. So, I&#8217;ve now added:</p>
<pre>git bz push</pre>
<p>Which looks at the URL that &#8216;git bz attach&#8217; added to your commit message, finds the bug from there, and pops up a prefilled editor. It looks something like:</p>
<pre># Bug 43215 - Split HTTP communication out of Bug class - UNCONFIRMED
# http://bugzilla.example.com/show_bug.cgi?id=43215
# Enter comment on following lines; delete everything to abort

Attachment 892 pushed as f319ea4 - Split HTTP communication out of Bug class

# Comment to keep bug open
# possible resolutions: [F]IXED, [I]NVALID, [WON]TFIX, [WOR]KSFORME
Resolution: FIXED

# Lines below change patch status, unless commented out
# possible statuses: [n]one, [rev]iewed, [rej]ected, [c]ommitted, [o]bsolete
committed @892 - Split HTTP communication out of Bug class - none</pre>
<p>You can just accept it, or you can make changes and add additional comment text. Once you exit the editor, the bug is closed and the attachments are marked committed.</p>
<p>Even more recently (just today) I implemented a feature request from Benjamin Otte for:</p>
<pre>git bz push --fix 43215</pre>
<p>This combines &#8216;git bz attach&#8217; and &#8216;git bz push&#8217; into one. So, to review, what it does is:</p>
<ol>
<li>Rewrites the commit to include the bug URL</li>
<li>Attaches the commit to the bug, and marks it &#8216;committed&#8217;</li>
<li>Pushes the commit</li>
<li>Adds a comment to the bug and mark it resolved</li>
</ol>
<p>The only thing it doesn&#8217;t do is mail your boss and ask for a raise.</p>
<p>Some of the other recent activity for git-bz:</p>
<ul>
<li>Fixed to work with new GNOME bugzilla</li>
<li>&#8216;git bz edit&#8217; &#8211; like &#8216;git bz push&#8217;, but not tied to a push. (So, you can just use it instead of the web when convenient.)</li>
<li>Customizable &#8220;URL addition&#8221; -  you can have &#8220;Bug nnnn &#8211; &#8221; on the subject line instead of an URL appended to the commit body.</li>
<li>&#8220;URL addition&#8221; defaults to on, so you don&#8217;t have to remember to pass -u/&#8211;add-url</li>
<li>No need to specify the bug # when re-attaching an updated version of a commit</li>
<li>XML-RPC used for bug filing when available (improves error handling a bit)</li>
<li>Chromium cookie-reading support (from Colin)</li>
<li>Docs split out into a <a href="http://git.fishsoup.net/man/git-bz.html">man page</a></li>
</ul>
<p>As always, installation is trivial &#8211; just grab the <a href="http://git.fishsoup.net/cgit/git-bz/plain/git-bz">script</a> and put it somewhere in your path. (Or get the git repo URL from <a href="http://git.fishsoup.net/cgit/git-bz">cgit</a>, clone it, and symlink.)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/owtaylor.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/owtaylor.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/owtaylor.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/owtaylor.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/owtaylor.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/owtaylor.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/owtaylor.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/owtaylor.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.fishsoup.net&amp;blog=1430594&amp;post=178&amp;subd=owtaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.fishsoup.net/2009/09/05/git-bz-push/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a45426932356d75ac19f68c0c958f800?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Owen</media:title>
		</media:content>
	</item>
		<item>
		<title>git-bz: Bugzilla subcommand for Git</title>
		<link>http://blog.fishsoup.net/2008/11/16/git-bz-bugzilla-subcommand-for-git/</link>
		<comments>http://blog.fishsoup.net/2008/11/16/git-bz-bugzilla-subcommand-for-git/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 14:08:56 +0000</pubDate>
		<dc:creator>Owen</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://owtaylor.wordpress.com/?p=76</guid>
		<description><![CDATA[Now that gnome-shell development is in full swing, I&#8217;ve been spending a lot of time creating patches with git and git-svn, and then pasting the git-format-patch results into Bugzilla. That seemed like a highly automatable task. git-send-bugzilla wasn&#8217;t really what I was looking for. Hence, git-bz: # File the last commit as a new bug [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.fishsoup.net&amp;blog=1430594&amp;post=76&amp;subd=owtaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now that gnome-shell development is in full swing, I&#8217;ve been spending a lot of time creating patches with git and git-svn, and then pasting the git-format-patch results into Bugzilla. That seemed like a highly automatable task. git-send-bugzilla wasn&#8217;t really what I was looking for. Hence, git-bz:</p>
<pre>
# File the last commit as a new bug on the default tracker
git bz file my-product/some-component HEAD^

# Attach a series of patches to an existing bug
git bz attach bugzilla.gnome.org:1234 b50ea9bd^

# Prompt if you want to apply each patch attachment from a bug
git bz apply bgo:1234
</pre>
<p>Just the script: <a href="http://git.fishsoup.net/cgit/git-bz/plain/git-bz">http://git.fishsoup.net/cgit/git-bz/plain/git-bz</a><br />
GIt repository: git clone git://git.fishsoup.net/git-bz</p>
<p>I haven&#8217;t tested with anything but bugzilla.gnome.org yet; expect some things to need fixing.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/owtaylor.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/owtaylor.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/owtaylor.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/owtaylor.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/owtaylor.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/owtaylor.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/owtaylor.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/owtaylor.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.fishsoup.net&amp;blog=1430594&amp;post=76&amp;subd=owtaylor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.fishsoup.net/2008/11/16/git-bz-bugzilla-subcommand-for-git/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a45426932356d75ac19f68c0c958f800?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Owen</media:title>
		</media:content>
	</item>
	</channel>
</rss>
