<?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: Local caching: A major distinguishing difference between VCSes</title>
	<atom:link href="http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/</link>
	<description>Just another GNOME Blogs weblog</description>
	<lastBuildDate>Sun, 11 Jan 2009 23:03:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Matt Nordhoff</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-190</link>
		<dc:creator>Matt Nordhoff</dc:creator>
		<pubDate>Wed, 28 Nov 2007 12:58:19 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-190</guid>
		<description>If git remotes are just shortcuts for URLs, hg supports that. There&#039;s no command for it; you have to edit .hg/hgrc, adding &quot;[paths] \n linus = http://linusrepo&quot;.

Every DVCS only pulls the unique changes. It&#039;s like the definition of a DVCS.</description>
		<content:encoded><![CDATA[<p>If git remotes are just shortcuts for URLs, hg supports that. There&#8217;s no command for it; you have to edit .hg/hgrc, adding &#8220;[paths] \n linus = <a href="http://linusrepo" rel="nofollow">http://linusrepo</a>&#8220;.</p>
<p>Every DVCS only pulls the unique changes. It&#8217;s like the definition of a DVCS.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Tsai</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-189</link>
		<dc:creator>Scott Tsai</dc:creator>
		<pubDate>Wed, 28 Nov 2007 08:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-189</guid>
		<description>hg does fetch the full history of all other branches as well. Perhaps you were unaware of the &quot;named branch&quot; feature of hg?
see:
http://hgbook.red-bean.com/hgbookch8.html#x12-1640008.6</description>
		<content:encoded><![CDATA[<p>hg does fetch the full history of all other branches as well. Perhaps you were unaware of the &#8220;named branch&#8221; feature of hg?<br />
see:<br />
<a href="http://hgbook.red-bean.com/hgbookch8.html#x12-1640008.6" rel="nofollow">http://hgbook.red-bean.com/hgbookch8.html#x12-1640008.6</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: newren</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-188</link>
		<dc:creator>newren</dc:creator>
		<pubDate>Mon, 26 Nov 2007 03:14:34 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-188</guid>
		<description>engla:  Well, similar to how you can pass the --prune flag to git gc, you can also run
  git reflog expire --all --expire-unreachable=0
to get rid of deleted stuff (I&#039;m pretty sure it&#039;ll work for your deleted branches case and it&#039;s also handy for immediately getting rid of &quot;deleted&quot; information when using git-filter-branch, at least older versions of it.)

Anyway, I agree that object longevity is interesting in git, but it&#039;s really not anything that I think most users would need to concern themselves with.</description>
		<content:encoded><![CDATA[<p>engla:  Well, similar to how you can pass the &#8211;prune flag to git gc, you can also run<br />
  git reflog expire &#8211;all &#8211;expire-unreachable=0<br />
to get rid of deleted stuff (I&#8217;m pretty sure it&#8217;ll work for your deleted branches case and it&#8217;s also handy for immediately getting rid of &#8220;deleted&#8221; information when using git-filter-branch, at least older versions of it.)</p>
<p>Anyway, I agree that object longevity is interesting in git, but it&#8217;s really not anything that I think most users would need to concern themselves with.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: engla</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-187</link>
		<dc:creator>engla</dc:creator>
		<pubDate>Mon, 26 Nov 2007 01:27:29 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-187</guid>
		<description>Addendum: Such objects are of course never transferred out of the repository via pushes or other means.</description>
		<content:encoded><![CDATA[<p>Addendum: Such objects are of course never transferred out of the repository via pushes or other means.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: engla</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-186</link>
		<dc:creator>engla</dc:creator>
		<pubDate>Mon, 26 Nov 2007 01:22:32 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-186</guid>
		<description>Another interesting thing with git: its &quot;object&quot; longevity (here object is commit and file content data)

With usual usually, git-gc, the packing step only compresses. It removes nothing. Which means that even objects that you have removed totally (changes from a branch that you never merged in, and you deleted the branch), they don&#039;t expire. The future auto-packing &quot;git gc --auto&quot; or the standard packing &quot;git gc&quot; won&#039;t remove these objects. There is a second step that needs to be taken.. &quot;git gc --purge&quot;. Even then, only unreachable objects will be removed. Git has another feature-- the reflog. The reflog is a very special &quot;branch&quot; since it records each position of HEAD in the last 30 days (by default). So removed branches won&#039;t be purged by purge until after waiting for 30 days, when the last reference to them will finally be released.</description>
		<content:encoded><![CDATA[<p>Another interesting thing with git: its &#8220;object&#8221; longevity (here object is commit and file content data)</p>
<p>With usual usually, git-gc, the packing step only compresses. It removes nothing. Which means that even objects that you have removed totally (changes from a branch that you never merged in, and you deleted the branch), they don&#8217;t expire. The future auto-packing &#8220;git gc &#8211;auto&#8221; or the standard packing &#8220;git gc&#8221; won&#8217;t remove these objects. There is a second step that needs to be taken.. &#8220;git gc &#8211;purge&#8221;. Even then, only unreachable objects will be removed. Git has another feature&#8211; the reflog. The reflog is a very special &#8220;branch&#8221; since it records each position of HEAD in the last 30 days (by default). So removed branches won&#8217;t be purged by purge until after waiting for 30 days, when the last reference to them will finally be released.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: newren</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-184</link>
		<dc:creator>newren</dc:creator>
		<pubDate>Sun, 25 Nov 2007 16:55:32 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-184</guid>
		<description>Jon: bisect used to be an extension for hg and is now part of it.  (http://www.selenic.com/mercurial/wiki/index.cgi/BisectExtension).  In bzr, there is a (linux only?) bisect extension (http://bazaar-vcs.org/BzrPlugins).</description>
		<content:encoded><![CDATA[<p>Jon: bisect used to be an extension for hg and is now part of it.  (<a href="http://www.selenic.com/mercurial/wiki/index.cgi/BisectExtension)" rel="nofollow">http://www.selenic.com/mercurial/wiki/index.cgi/BisectExtension)</a>.  In bzr, there is a (linux only?) bisect extension (<a href="http://bazaar-vcs.org/BzrPlugins)." rel="nofollow">http://bazaar-vcs.org/BzrPlugins).</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Smirl</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-182</link>
		<dc:creator>Jon Smirl</dc:creator>
		<pubDate>Sun, 25 Nov 2007 02:49:54 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-182</guid>
		<description>Other interesting topics:
patch management, stgit. 
visualization, gitweb, gitk.

I use stgit continuously. stgit is designed for managing patch series like you see posted to lkml. It allows you to edit them, regenerate the series, and rebase to a new kernel version. quilt is similar and not based on a specific VCS. If your patches need public review you want to be using one of these systems.

The visualization tools are nice too.

Another important git feature is bisect. Bisect does a binary search in the commits to track down the one that caused the bug. This is a very useful feature, I&#039;m not sure if any other VCS has it.

I believe the latest git versions nag you at commit time if a &#039;git gc&#039; would help. &#039;git gc&#039; isn&#039;t really critical, who cares is git is using 100MB more disk that it has to. If it bothers you type &#039;git gc&#039;. It doesn&#039;t significantly change the performance of git, it just reduces the disk space needs.

Another fairly unique git feature is remotes. &#039;git add remote linus git://linusrepo&#039; You can add all of the kernel repositories from other developers to your remotes. &#039;git fetch remote&#039; pulls down the changes. What is neat about this is that git figures out all of the common commits between the repos and only pulls down the unique changes. After you fetch them use &#039;git merge&#039; to bring them into your local branch.

If using stgit:
git fetch linus (pull down the change&#039;s from Linus&#039; repo)
stg rebase linus/master (merge in linus&#039; changes and fix up your patches to apply on them)
stg export (export the patch set to disk or directly email it to lkml)

Another git trick:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git digispeaker
cd digispeaker
git config remote.origin.url  http://git.digispeaker.com/projects/digispeaker-kernel.git
git pull

In this trick you pull in all of the kernel history from the high speed servers at kernel.org (or your local server). You then switch servers and pull in only my changes from my slow hosting provider.

Of course if you already have a local kernel repo just add digispeaker as a remote and it will download in a few seconds.</description>
		<content:encoded><![CDATA[<p>Other interesting topics:<br />
patch management, stgit.<br />
visualization, gitweb, gitk.</p>
<p>I use stgit continuously. stgit is designed for managing patch series like you see posted to lkml. It allows you to edit them, regenerate the series, and rebase to a new kernel version. quilt is similar and not based on a specific VCS. If your patches need public review you want to be using one of these systems.</p>
<p>The visualization tools are nice too.</p>
<p>Another important git feature is bisect. Bisect does a binary search in the commits to track down the one that caused the bug. This is a very useful feature, I&#8217;m not sure if any other VCS has it.</p>
<p>I believe the latest git versions nag you at commit time if a &#8216;git gc&#8217; would help. &#8216;git gc&#8217; isn&#8217;t really critical, who cares is git is using 100MB more disk that it has to. If it bothers you type &#8216;git gc&#8217;. It doesn&#8217;t significantly change the performance of git, it just reduces the disk space needs.</p>
<p>Another fairly unique git feature is remotes. &#8216;git add remote linus git://linusrepo&#8217; You can add all of the kernel repositories from other developers to your remotes. &#8216;git fetch remote&#8217; pulls down the changes. What is neat about this is that git figures out all of the common commits between the repos and only pulls down the unique changes. After you fetch them use &#8216;git merge&#8217; to bring them into your local branch.</p>
<p>If using stgit:<br />
git fetch linus (pull down the change&#8217;s from Linus&#8217; repo)<br />
stg rebase linus/master (merge in linus&#8217; changes and fix up your patches to apply on them)<br />
stg export (export the patch set to disk or directly email it to lkml)</p>
<p>Another git trick:<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git digispeaker<br />
cd digispeaker<br />
git config remote.origin.url  <a href="http://git.digispeaker.com/projects/digispeaker-kernel.git" rel="nofollow">http://git.digispeaker.com/projects/digispeaker-kernel.git</a><br />
git pull</p>
<p>In this trick you pull in all of the kernel history from the high speed servers at kernel.org (or your local server). You then switch servers and pull in only my changes from my slow hosting provider.</p>
<p>Of course if you already have a local kernel repo just add digispeaker as a remote and it will download in a few seconds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: menko</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-181</link>
		<dc:creator>menko</dc:creator>
		<pubDate>Sat, 24 Nov 2007 14:31:33 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-181</guid>
		<description>are you sure that hg doesn&#039;t copy _local_ branches when fetching the repo?

if that is the case, then I think hg is just as good as git, just that it doesn&#039;t force you to run any &quot;hg gc&quot; once in a time :D</description>
		<content:encoded><![CDATA[<p>are you sure that hg doesn&#8217;t copy _local_ branches when fetching the repo?</p>
<p>if that is the case, then I think hg is just as good as git, just that it doesn&#8217;t force you to run any &#8220;hg gc&#8221; once in a time <img src='http://blogs.gnome.org/newren/wp-content/mu-plugins/tango-smilies/tango/face-smile-big.png' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: newren</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-179</link>
		<dc:creator>newren</dc:creator>
		<pubDate>Sat, 24 Nov 2007 06:00:18 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-179</guid>
		<description>pclouds: Sweet!</description>
		<content:encoded><![CDATA[<p>pclouds: Sweet!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pclouds</title>
		<link>http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/comment-page-1/#comment-178</link>
		<dc:creator>pclouds</dc:creator>
		<pubDate>Sat, 24 Nov 2007 05:54:30 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/newren/2007/11/24/local-caching-a-major-distinguishing-difference-between-vcses/#comment-178</guid>
		<description>FYI, automatic packing is in git master branch already [1]. It should be available in 1.5.4.

[1] commit d4bb43ee273528064192848165f93f8fc3512be1</description>
		<content:encoded><![CDATA[<p>FYI, automatic packing is in git master branch already [1]. It should be available in 1.5.4.</p>
<p>[1] commit d4bb43ee273528064192848165f93f8fc3512be1</p>
]]></content:encoded>
	</item>
</channel>
</rss>
