<?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: Persistent Trees in git, Clojure and CouchDB</title>
	<atom:link href="http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Wed, 16 May 2012 08:22:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Daniel Waterworth</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-9034</link>
		<dc:creator>Daniel Waterworth</dc:creator>
		<pubDate>Thu, 24 Feb 2011 07:09:53 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-9034</guid>
		<description>Hi,

I wondered if you&#039;d be interested in aodbm. It&#039;s an append only database in the style of dbm. Here&#039;s it&#039;s url, https://sourceforge.net/projects/aodbm/ .</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I wondered if you&#8217;d be interested in aodbm. It&#8217;s an append only database in the style of dbm. Here&#8217;s it&#8217;s url, <a href="https://sourceforge.net/projects/aodbm/" rel="nofollow">https://sourceforge.net/projects/aodbm/</a> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: D'gou</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3638</link>
		<dc:creator>D'gou</dc:creator>
		<pubDate>Mon, 29 Mar 2010 02:26:57 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3638</guid>
		<description>It is interesting to note that Mercurial, another DVCS, uses the same goodness of &quot;append only&quot; that CouchDB uses. I don&#039;t know the timeline for CouchDB, but my impression is that Mercurial was doing &quot;append only&quot; before then. But &quot;append only&quot; itself is a very old technique.</description>
		<content:encoded><![CDATA[<p>It is interesting to note that Mercurial, another DVCS, uses the same goodness of &#8220;append only&#8221; that CouchDB uses. I don&#8217;t know the timeline for CouchDB, but my impression is that Mercurial was doing &#8220;append only&#8221; before then. But &#8220;append only&#8221; itself is a very old technique.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frando</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3391</link>
		<dc:creator>Frando</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:43:50 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3391</guid>
		<description>These are all directed acylclic graphs (http://en.wikipedia.org/wiki/Directed_acyclic_graph).</description>
		<content:encoded><![CDATA[<p>These are all directed acylclic graphs (<a href="http://en.wikipedia.org/wiki/Directed_acyclic_graph" rel="nofollow">http://en.wikipedia.org/wiki/Directed_acyclic_graph</a>).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashwin Jayaprakash</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3339</link>
		<dc:creator>Ashwin Jayaprakash</dc:creator>
		<pubDate>Wed, 20 Jan 2010 21:32:35 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3339</guid>
		<description>I believe Apache Cassandra also implements some form of LSM storage.</description>
		<content:encoded><![CDATA[<p>I believe Apache Cassandra also implements some form of LSM storage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yuval Kogman</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3278</link>
		<dc:creator>Yuval Kogman</dc:creator>
		<pubDate>Thu, 24 Dec 2009 14:58:21 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3278</guid>
		<description>http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf became a book called Purely Functional Data Structures: http://books.google.com/books?id=SxPzSTcTalAC&amp;dq=purely+functional+data+structures&amp;printsec=frontcover&amp;source=bn&amp;hl=en&amp;ei=XoEzS-DLBOqJ4Ab1yejZAQ&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=4&amp;ved=0CBoQ6AEwAw

Secondly, http://www.amazon.com/Algorithms-Functional-Programming-Approach-International/dp/0201596040</description>
		<content:encoded><![CDATA[<p><a href="http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf" rel="nofollow">http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf</a> became a book called Purely Functional Data Structures: <a href="http://books.google.com/books?id=SxPzSTcTalAC&#038;dq=purely+functional+data+structures&#038;printsec=frontcover&#038;source=bn&#038;hl=en&#038;ei=XoEzS-DLBOqJ4Ab1yejZAQ&#038;sa=X&#038;oi=book_result&#038;ct=result&#038;resnum=4&#038;ved=0CBoQ6AEwAw" rel="nofollow">http://books.google.com/books?id=SxPzSTcTalAC&#038;dq=purely+functional+data+structures&#038;printsec=frontcover&#038;source=bn&#038;hl=en&#038;ei=XoEzS-DLBOqJ4Ab1yejZAQ&#038;sa=X&#038;oi=book_result&#038;ct=result&#038;resnum=4&#038;ved=0CBoQ6AEwAw</a></p>
<p>Secondly, <a href="http://www.amazon.com/Algorithms-Functional-Programming-Approach-International/dp/0201596040" rel="nofollow">http://www.amazon.com/Algorithms-Functional-Programming-Approach-International/dp/0201596040</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jorge Vargas</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3270</link>
		<dc:creator>Jorge Vargas</dc:creator>
		<pubDate>Mon, 21 Dec 2009 15:49:34 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3270</guid>
		<description>Really interesting post. Thank you. I have been puzzling with that patter for some time. Now I have a description and a name!</description>
		<content:encoded><![CDATA[<p>Really interesting post. Thank you. I have been puzzling with that patter for some time. Now I have a description and a name!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nathan Youngman</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3238</link>
		<dc:creator>Nathan Youngman</dc:creator>
		<pubDate>Tue, 15 Dec 2009 03:11:58 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3238</guid>
		<description>I&#039;ve been following Clojure for a few months and find it&#039;s data structures very intriguing. Thanks for this article... I do hope it&#039;s an idea whose time has come.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been following Clojure for a few months and find it&#8217;s data structures very intriguing. Thanks for this article&#8230; I do hope it&#8217;s an idea whose time has come.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Virding</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3233</link>
		<dc:creator>Robert Virding</dc:creator>
		<pubDate>Mon, 14 Dec 2009 15:01:00 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3233</guid>
		<description>Immutable data and trees are old, much older @FuncFan than Chris Okasaki, although he has written a very good description of them. They are a fundamental part of functional and logic programming.</description>
		<content:encoded><![CDATA[<p>Immutable data and trees are old, much older @FuncFan than Chris Okasaki, although he has written a very good description of them. They are a fundamental part of functional and logic programming.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Colebourne</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3231</link>
		<dc:creator>Stephen Colebourne</dc:creator>
		<pubDate>Mon, 14 Dec 2009 12:52:52 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3231</guid>
		<description>I&#039;d also suggest that RESTful architectures have a link to this pattern. The RESTful approach conceptually doesn&#039;t have an update - PUT is equivalent to a replace, which maps on to the append-only approach very nicely.</description>
		<content:encoded><![CDATA[<p>I&#8217;d also suggest that RESTful architectures have a link to this pattern. The RESTful approach conceptually doesn&#8217;t have an update &#8211; PUT is equivalent to a replace, which maps on to the append-only approach very nicely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manuel Woelker</title>
		<link>http://eclipsesource.com/blogs/2009/12/13/persistent-trees-in-git-clojure-and-couchdb-data-structure-convergence/comment-page-1/#comment-3229</link>
		<dc:creator>Manuel Woelker</dc:creator>
		<pubDate>Mon, 14 Dec 2009 08:17:38 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3606#comment-3229</guid>
		<description>@FuncFan: Thanks for putting a name to the face! I added a small update to the post.

@Dan Fabulich: Actually the git tree objects themselves are immutable. What rebase does is create a new series of trees, that are changed version of the originals; but the original trees remain untouched. Only the HEAD reference now points to the new history.

Rebasing being a bit of work is a Good Thing IMHO. For one, it discourages excessive use of the feature. But it also makes it impossible to secretly &quot;spirit away&quot; certain parts of the history. Every downstream repository is going to know that history has been mucked with, and can verify independently what changes were made with relative ease.

Note that rebasing does have its legitimate uses. One for example are local branches that might need a bit of pruning or polishing. Another use case are situations where certain files have to be removed for legal reasons (e.g. license incompatibilities). C.f. https://bugs.eclipse.org/bugs/show_bug.cgi?id=270852

But again, the reason that the rebase is so much work is exactly the fact that the trees themselves (and thus their SHA-1 identifiers) are immutable.</description>
		<content:encoded><![CDATA[<p>@FuncFan: Thanks for putting a name to the face! I added a small update to the post.</p>
<p>@Dan Fabulich: Actually the git tree objects themselves are immutable. What rebase does is create a new series of trees, that are changed version of the originals; but the original trees remain untouched. Only the HEAD reference now points to the new history.</p>
<p>Rebasing being a bit of work is a Good Thing IMHO. For one, it discourages excessive use of the feature. But it also makes it impossible to secretly &#8220;spirit away&#8221; certain parts of the history. Every downstream repository is going to know that history has been mucked with, and can verify independently what changes were made with relative ease.</p>
<p>Note that rebasing does have its legitimate uses. One for example are local branches that might need a bit of pruning or polishing. Another use case are situations where certain files have to be removed for legal reasons (e.g. license incompatibilities). C.f. <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=270852" rel="nofollow">https://bugs.eclipse.org/bugs/show_bug.cgi?id=270852</a></p>
<p>But again, the reason that the rebase is so much work is exactly the fact that the trees themselves (and thus their SHA-1 identifiers) are immutable.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

