<?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: Document replication: CouchDB vs. DVCS</title>
	<atom:link href="http://rcoder.net/content/document-replication-couchdb-vs-dvcs/feed" rel="self" type="application/rss+xml" />
	<link>http://rcoder.net/content/document-replication-couchdb-vs-dvcs</link>
	<description>Code, food, pinball, beer, and bikes. It&#039;s hard living in a place this awesome.</description>
	<lastBuildDate>Sat, 23 Jan 2010 11:37:40 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tony Garnock-Jones</title>
		<link>http://rcoder.net/content/document-replication-couchdb-vs-dvcs/comment-page-1#comment-404</link>
		<dc:creator>Tony Garnock-Jones</dc:creator>
		<pubDate>Fri, 06 Mar 2009 09:45:51 +0000</pubDate>
		<guid isPermaLink="false">http://rcoder.net/?p=281#comment-404</guid>
		<description>Having some kind of programmable merge capability would be a great addition to CouchDB. The current system, if I understand it correctly, is a kind of two-way merge in which one branch always wins. In order to support a more sophisticated approach, one would need to be able to identify the historical revision that the two branches have in common in order to do a three-way merge, and then to be able to supply a javascript function to actually do the merge. I&#039;ve been experimenting with &lt;a href=&quot;http://www.lshift.net/blog/2008/06/06/diff3-merging-and-distributed-version-control&quot; rel=&quot;nofollow&quot;&gt;Javascript DVCS&lt;/a&gt;, including adding history-and-merging into &lt;a href=&quot;http://hg.opensource.lshift.net/synchrotron/raw-file/default/tiddlywiki/tiddlydvcs.html&quot; rel=&quot;nofollow&quot;&gt;an experimental TiddlyWiki&lt;/a&gt;; it&#039;d be wonderful to have hooks within CouchDB for programmable 3-way conflict resolution.</description>
		<content:encoded><![CDATA[<p>Having some kind of programmable merge capability would be a great addition to CouchDB. The current system, if I understand it correctly, is a kind of two-way merge in which one branch always wins. In order to support a more sophisticated approach, one would need to be able to identify the historical revision that the two branches have in common in order to do a three-way merge, and then to be able to supply a javascript function to actually do the merge. I&#8217;ve been experimenting with <a href="http://www.lshift.net/blog/2008/06/06/diff3-merging-and-distributed-version-control" rel="nofollow">Javascript DVCS</a>, including adding history-and-merging into <a href="http://hg.opensource.lshift.net/synchrotron/raw-file/default/tiddlywiki/tiddlydvcs.html" rel="nofollow">an experimental TiddlyWiki</a>; it&#8217;d be wonderful to have hooks within CouchDB for programmable 3-way conflict resolution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lennon</title>
		<link>http://rcoder.net/content/document-replication-couchdb-vs-dvcs/comment-page-1#comment-264</link>
		<dc:creator>lennon</dc:creator>
		<pubDate>Fri, 31 Oct 2008 18:24:25 +0000</pubDate>
		<guid isPermaLink="false">http://rcoder.net/?p=281#comment-264</guid>
		<description>I think that eschewing &quot;magic&quot; is commendable, and it may well be that automatic merging doesn&#039;t belong in the CouchDB core. When I say that you need a good &quot;story,&quot; though, I mean precisely that: some compelling explanation for the &quot;best practices&quot; for multi-way merging that doesn&#039;t simply leave it as an exercise for the reader.

Perhaps I&#039;ll get a chance to play with some simple implementations of automatic merging once I start digging into CouchDB a little more deeply. If so, you can bet I&#039;ll be coming to you with questions, Chris.</description>
		<content:encoded><![CDATA[<p>I think that eschewing &#8220;magic&#8221; is commendable, and it may well be that automatic merging doesn&#8217;t belong in the CouchDB core. When I say that you need a good &#8220;story,&#8221; though, I mean precisely that: some compelling explanation for the &#8220;best practices&#8221; for multi-way merging that doesn&#8217;t simply leave it as an exercise for the reader.</p>
<p>Perhaps I&#8217;ll get a chance to play with some simple implementations of automatic merging once I start digging into CouchDB a little more deeply. If so, you can bet I&#8217;ll be coming to you with questions, Chris.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Anderson</title>
		<link>http://rcoder.net/content/document-replication-couchdb-vs-dvcs/comment-page-1#comment-263</link>
		<dc:creator>Chris Anderson</dc:creator>
		<pubDate>Fri, 31 Oct 2008 18:22:11 +0000</pubDate>
		<guid isPermaLink="false">http://rcoder.net/?p=281#comment-263</guid>
		<description>Oh and thanks for the insightful commentary. I do think that many merging use cases can be captured by just a few lines of code. Hopefully we&#039;ll come up with a good way to reuse that code. What will be the jQuery of CouchDB?

BTW you&#039;re site stores a cookie but gives me this error when I try to post the comment without refilling my name etc. &quot;Error: please fill the required fields (name, email).&quot;</description>
		<content:encoded><![CDATA[<p>Oh and thanks for the insightful commentary. I do think that many merging use cases can be captured by just a few lines of code. Hopefully we&#8217;ll come up with a good way to reuse that code. What will be the jQuery of CouchDB?</p>
<p>BTW you&#8217;re site stores a cookie but gives me this error when I try to post the comment without refilling my name etc. &#8220;Error: please fill the required fields (name, email).&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Anderson</title>
		<link>http://rcoder.net/content/document-replication-couchdb-vs-dvcs/comment-page-1#comment-261</link>
		<dc:creator>Chris Anderson</dc:creator>
		<pubDate>Fri, 31 Oct 2008 18:20:13 +0000</pubDate>
		<guid isPermaLink="false">http://rcoder.net/?p=281#comment-261</guid>
		<description>Part of the CouchDB philosophy is to avoid RPC style &quot;server magic&quot; whenever possible. If you think of documents as just resources, of course they should be manipulated by the client. Some apps may have fields with complex interdependencies (like an invoice&#039;s line items and it&#039;s total). Pushing merging back to the app is the only solution for the breadth of uses out there.</description>
		<content:encoded><![CDATA[<p>Part of the CouchDB philosophy is to avoid RPC style &#8220;server magic&#8221; whenever possible. If you think of documents as just resources, of course they should be manipulated by the client. Some apps may have fields with complex interdependencies (like an invoice&#8217;s line items and it&#8217;s total). Pushing merging back to the app is the only solution for the breadth of uses out there.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
