<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Version Control Wish</title>
	<atom:link href="http://www.airs.com/blog/archives/222/feed" rel="self" type="application/rss+xml" />
	<link>http://www.airs.com/blog/archives/222</link>
	<description>Ian Lance Taylor</description>
	<lastBuildDate>Mon, 26 Jul 2010 08:38:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-17838</link>
		<dc:creator>Ian Lance Taylor</dc:creator>
		<pubDate>Wed, 15 Jul 2009 00:09:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-17838</guid>
		<description>Thanks for the note.  I&#039;m not quite convinced that this is making it simple.  I am able to do what I want using any modern VCS.  What I&#039;m looking for is something that makes it simple.  Ideally I want to have several patches which live together, but which I can manipulate independently.  And do git rebase or git cherrypick really do the right thing for moving a patch from the development branch to a release branch?</description>
		<content:encoded><![CDATA[<p>Thanks for the note.  I&#8217;m not quite convinced that this is making it simple.  I am able to do what I want using any modern VCS.  What I&#8217;m looking for is something that makes it simple.  Ideally I want to have several patches which live together, but which I can manipulate independently.  And do git rebase or git cherrypick really do the right thing for moving a patch from the development branch to a release branch?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Spudd86</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-16955</link>
		<dc:creator>Spudd86</dc:creator>
		<pubDate>Sun, 12 Apr 2009 15:41:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-16955</guid>
		<description>You could try using git in the following way:

for each patch you have a branch.

forward porting a patch to your head can then be done like this (if your working copy has no uncommited changes)
git checkout 
git rebase

and git cherrypick is exactly transferring changesets from one branch to another

there is also a way to add chunks from your working copy interactivly (that is you can choose which bits of the diff commit)

so if you write some shell scripts you could make git do pretty much everything you describe by itself (and without them you can do it by hand)

git pull will only change the one branch... but you can then rebase all your patch branches onto master to update them (assuming you pulled into master)

git rebase also has an interactive mode where you can muck about with the patches as they are re-applyed, (change order, drop some, I think you may be able split them up as well)

So for example if you wanted to automatically pull and rebase all your patch branches you could write a shell script to do that (possibly you follow some sort of naming convention your patch branches so the script can determine which they are automatically, something like -patch-)</description>
		<content:encoded><![CDATA[<p>You could try using git in the following way:</p>
<p>for each patch you have a branch.</p>
<p>forward porting a patch to your head can then be done like this (if your working copy has no uncommited changes)<br />
git checkout<br />
git rebase</p>
<p>and git cherrypick is exactly transferring changesets from one branch to another</p>
<p>there is also a way to add chunks from your working copy interactivly (that is you can choose which bits of the diff commit)</p>
<p>so if you write some shell scripts you could make git do pretty much everything you describe by itself (and without them you can do it by hand)</p>
<p>git pull will only change the one branch&#8230; but you can then rebase all your patch branches onto master to update them (assuming you pulled into master)</p>
<p>git rebase also has an interactive mode where you can muck about with the patches as they are re-applyed, (change order, drop some, I think you may be able split them up as well)</p>
<p>So for example if you wanted to automatically pull and rebase all your patch branches you could write a shell script to do that (possibly you follow some sort of naming convention your patch branches so the script can determine which they are automatically, something like -patch-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-14598</link>
		<dc:creator>Ian Lance Taylor</dc:creator>
		<pubDate>Tue, 29 Jul 2008 06:07:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-14598</guid>
		<description>adis: As far as I can tell, Mercurial Queues are quilt for Mercurial.  That&#039;s useful, but it&#039;s not what I&#039;m after.  That requires me to do a lot of the bookkeeping myself.

ncm: I am skeptical that monotone can handle the gcc repository efficiently.  I&#039;d be happy to hear otherwise.</description>
		<content:encoded><![CDATA[<p>adis: As far as I can tell, Mercurial Queues are quilt for Mercurial.  That&#8217;s useful, but it&#8217;s not what I&#8217;m after.  That requires me to do a lot of the bookkeeping myself.</p>
<p>ncm: I am skeptical that monotone can handle the gcc repository efficiently.  I&#8217;d be happy to hear otherwise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ncm</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-14578</link>
		<dc:creator>ncm</dc:creator>
		<pubDate>Sat, 26 Jul 2008 09:11:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-14578</guid>
		<description>You might get what you want from Monotone -- particularly if you provide patches yourself.  Civility and rigor seem more characteristic of that project than some others, under Nathaniel Smith&#039;s leadership.</description>
		<content:encoded><![CDATA[<p>You might get what you want from Monotone &#8212; particularly if you provide patches yourself.  Civility and rigor seem more characteristic of that project than some others, under Nathaniel Smith&#8217;s leadership.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adis</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-14576</link>
		<dc:creator>adis</dc:creator>
		<pubDate>Sat, 26 Jul 2008 03:20:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-14576</guid>
		<description>Maybe you can (ab)use Mercurial Queues for some of your wishes? With some proper commit hygiene, backporting patches should be fairly easy as well.

Darcs &quot;Theory of patches&quot; is also an interesting read: http://darcs.net/manual/node8.html</description>
		<content:encoded><![CDATA[<p>Maybe you can (ab)use Mercurial Queues for some of your wishes? With some proper commit hygiene, backporting patches should be fairly easy as well.</p>
<p>Darcs &#8220;Theory of patches&#8221; is also an interesting read: <a href="http://darcs.net/manual/node8.html" rel="nofollow">http://darcs.net/manual/node8.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-14569</link>
		<dc:creator>Ian Lance Taylor</dc:creator>
		<pubDate>Fri, 25 Jul 2008 14:43:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-14569</guid>
		<description>The two systems I&#039;ve been hearing recommendations for are git and Mercurial.</description>
		<content:encoded><![CDATA[<p>The two systems I&#8217;ve been hearing recommendations for are git and Mercurial.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rskrishnan</title>
		<link>http://www.airs.com/blog/archives/222/comment-page-1#comment-14565</link>
		<dc:creator>rskrishnan</dc:creator>
		<pubDate>Fri, 25 Jul 2008 06:12:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.airs.com/blog/archives/222#comment-14565</guid>
		<description>Nice summary of &quot;what I want from a VCS&quot; !! Now if some of the vcs vendors would read, and more importantly _take this to heart_ life would be much better.

I&#039;m yet to see a VCS that will move a patch backwards that is on Re --&gt; Rd (i.e. &quot;backporting&quot; a patch). Neither git, nor perforce, and surely never ClearCase seem to be able to deal with this sort of request well (specially if the delta between Rd and Re is non-trivial). With ClearCase ranking high on the &quot;yuck&quot; factor.
I like git mostly for it&#039;s speed and &quot;everything is local&quot; mentality - makes disconnected operation much more pleasant.</description>
		<content:encoded><![CDATA[<p>Nice summary of &#8220;what I want from a VCS&#8221; !! Now if some of the vcs vendors would read, and more importantly _take this to heart_ life would be much better.</p>
<p>I&#8217;m yet to see a VCS that will move a patch backwards that is on Re &#8211;&gt; Rd (i.e. &#8220;backporting&#8221; a patch). Neither git, nor perforce, and surely never ClearCase seem to be able to deal with this sort of request well (specially if the delta between Rd and Re is non-trivial). With ClearCase ranking high on the &#8220;yuck&#8221; factor.<br />
I like git mostly for it&#8217;s speed and &#8220;everything is local&#8221; mentality &#8211; makes disconnected operation much more pleasant.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
