<?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: Darcs and Mercurial Redux</title>
	<atom:link href="http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/feed/" rel="self" type="application/rss+xml" />
	<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/</link>
	<description>Counterpoint by Hans Fugal</description>
	<lastBuildDate>Tue, 16 Mar 2010 15:07:10 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Trent W. Buck</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1656</link>
		<dc:creator>Trent W. Buck</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1656</guid>
		<description>&lt;blockquote&gt;
    &lt;p&gt;I assume you mean with a darcs cgi? In
    any case, hg serve is undeniably easier.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I simply meant any old &quot;dumb&quot; http server.
I used thttpd as an example because I know off the top of my head how to start new daemons as non-privileged users on non-privileged ports.&lt;/p&gt;

&lt;p&gt;I was operating on the assumption that one starts an http server in order to export the repository to anonymous users.  Obviously if you want something like ViewVC, you&#039;d need to use a non-&quot;dumb&quot; httpd; hg serve falls into this category.&lt;/p&gt;

&lt;p&gt;thttpd: &lt;a href=&quot;http://www.acme.com/software/thttpd/&quot; rel=&quot;nofollow&quot;&gt;http://www.acme.com/software/thttpd/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;viewvc: &lt;a href=&quot;http://www.viewvc.org&quot; rel=&quot;nofollow&quot;&gt;http://www.viewvc.org&lt;/a&gt;&lt;/p&gt;</description>
		<content:encoded><![CDATA[<blockquote>
<p>I assume you mean with a darcs cgi? In<br />
    any case, hg serve is undeniably easier.</p>
</blockquote>
<p>I simply meant any old &#8220;dumb&#8221; http server.<br />
I used thttpd as an example because I know off the top of my head how to start new daemons as non-privileged users on non-privileged ports.</p>
<p>I was operating on the assumption that one starts an http server in order to export the repository to anonymous users.  Obviously if you want something like ViewVC, you&#8217;d need to use a non-&#8221;dumb&#8221; httpd; hg serve falls into this category.</p>
<p>thttpd: <a href="http://www.acme.com/software/thttpd/" rel="nofollow">http://www.acme.com/software/thttpd/</a></p>
<p>viewvc: <a href="http://www.viewvc.org" rel="nofollow">http://www.viewvc.org</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trent W. Buck</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1657</link>
		<dc:creator>Trent W. Buck</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1657</guid>
		<description>&lt;p&gt;Regarding .hgignore&#039;s emptiness-by-default, I simply worked around this by copying darcs&#039; default boring entries into ~/.hgignore (and pointing ~/.hgrc at it).&lt;/p&gt;

&lt;p&gt;It&#039;s worth pointing out that darcs&#039; repo-local boring file depends on which version of darcs did the &lt;code&gt;darcs init&#039; or&lt;/code&gt;darcs get&#039;, and that it doesn&#039;t ever get updated by a push or pull.  So if you make a repo with darcs 1.0.3, it will have &quot;obsolete&quot; or &quot;wrong&quot; boring entries.  If you have a heterogeneous develop group, some using old versions, this may cause confusion if generated files are ignored by one version (by default) but not another.&lt;/p&gt;

&lt;p&gt;ftp://twb.ath.cx/Preferences/.hgignore&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Regarding .hgignore&#8217;s emptiness-by-default, I simply worked around this by copying darcs&#8217; default boring entries into ~/.hgignore (and pointing ~/.hgrc at it).</p>
<p>It&#8217;s worth pointing out that darcs&#8217; repo-local boring file depends on which version of darcs did the <code>darcs init' or</code>darcs get&#8217;, and that it doesn&#8217;t ever get updated by a push or pull.  So if you make a repo with darcs 1.0.3, it will have &#8220;obsolete&#8221; or &#8220;wrong&#8221; boring entries.  If you have a heterogeneous develop group, some using old versions, this may cause confusion if generated files are ignored by one version (by default) but not another.</p>
<p><a href="ftp://twb.ath.cx/Preferences/.hgignore" rel="nofollow">ftp://twb.ath.cx/Preferences/.hgignore</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trent W. Buck</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1658</link>
		<dc:creator>Trent W. Buck</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1658</guid>
		<description>&lt;p&gt;Regarding default &quot;upstream&quot; repo, Darcs uses _darcs/prefs/defaultrepo much like .hg/hgrc:paths:default.  Darcs will by default write it (and idempotently append _darcs/prefs/repos) for each get, push and pull (IIRC).&lt;/p&gt;

&lt;p&gt;I found this pretty annoying, since I often use temporary and feature branches, and these would clobber defaultrepo.  In ~/.darcs/prefs I have &#039;ALL no-set-default&#039;, which amounts to adding --no-set-default to each invocation.  AIUI this means _darcs/prefs/defaultrepo is only written if it does not already exist, which is the best DWIM heuristic I&#039;ve seen so far (for me, anyway).&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Regarding default &#8220;upstream&#8221; repo, Darcs uses _darcs/prefs/defaultrepo much like .hg/hgrc:paths:default.  Darcs will by default write it (and idempotently append _darcs/prefs/repos) for each get, push and pull (IIRC).</p>
<p>I found this pretty annoying, since I often use temporary and feature branches, and these would clobber defaultrepo.  In ~/.darcs/prefs I have &#8216;ALL no-set-default&#8217;, which amounts to adding &#8211;no-set-default to each invocation.  AIUI this means _darcs/prefs/defaultrepo is only written if it does not already exist, which is the best DWIM heuristic I&#8217;ve seen so far (for me, anyway).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trent W. Buck</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1659</link>
		<dc:creator>Trent W. Buck</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1659</guid>
		<description>&lt;p&gt;Oh, and I should not let any comparison of SCMs go by without referring to &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://revctrl.org/&quot; rel=&quot;nofollow&quot;&gt;http://revctrl.org/&lt;/a&gt; and irc://irc.freenode.net/#revctrl&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Oh, and I should not let any comparison of SCMs go by without referring to </p>
<p><a href="http://revctrl.org/" rel="nofollow">http://revctrl.org/</a> and <a href="irc://irc.freenode.net/#revctrl" rel="nofollow">irc://irc.freenode.net/#revctrl</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Trent W. Buck</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1660</link>
		<dc:creator>Trent W. Buck</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1660</guid>
		<description>&lt;p&gt;I wish to emphasize the (current) lack of an analogue of &quot;darcs amend&quot; in Mercurial.    In the same way I compulsively save a source file whenever I stop typing, I like to compulsively record incomplete patches in my local working repository and then incrementally re-record them until the patch is complete (whereupon I push it upstream).  Having code that&#039;s only stored in the working tree and not even in the metadata of the working tree makes me nervous, and it can become confusing if you stop working on one feature to make an unrelated fix that you run into while working on that feature -- e.g. fixing a typo.&lt;/p&gt;

&lt;p&gt;darcs amend makes this very easy, whereas it is several steps in hg -- or impossible, if you have committed another changeset (e.g. an unrelated typo fix in ./doc/) after your partial changeset.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>I wish to emphasize the (current) lack of an analogue of &#8220;darcs amend&#8221; in Mercurial.    In the same way I compulsively save a source file whenever I stop typing, I like to compulsively record incomplete patches in my local working repository and then incrementally re-record them until the patch is complete (whereupon I push it upstream).  Having code that&#8217;s only stored in the working tree and not even in the metadata of the working tree makes me nervous, and it can become confusing if you stop working on one feature to make an unrelated fix that you run into while working on that feature &#8212; e.g. fixing a typo.</p>
<p>darcs amend makes this very easy, whereas it is several steps in hg &#8212; or impossible, if you have committed another changeset (e.g. an unrelated typo fix in ./doc/) after your partial changeset.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1661</link>
		<dc:creator>Hans</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1661</guid>
		<description>&lt;p&gt;Ah, I see what you&#039;re saying about thttpd. I do the same thing by just putting my repo somewhere in my public_html directory. I believe it&#039;s the same with mercurial also. It&#039;s a nice feature. I was thinking more about human-browseable repositories (look at history, diffs, etc.) than pullable.&lt;/p&gt;

&lt;p&gt;You can accomplish the &lt;code&gt;darcs amend&lt;/code&gt; workflow with MQ, but it has to be intentional. I too really like &lt;code&gt;darcs amend&lt;/code&gt;.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Ah, I see what you&#8217;re saying about thttpd. I do the same thing by just putting my repo somewhere in my public_html directory. I believe it&#8217;s the same with mercurial also. It&#8217;s a nice feature. I was thinking more about human-browseable repositories (look at history, diffs, etc.) than pullable.</p>
<p>You can accomplish the <code>darcs amend</code> workflow with MQ, but it has to be intentional. I too really like <code>darcs amend</code>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Masklinn</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1662</link>
		<dc:creator>Masklinn</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1662</guid>
		<description>&lt;blockquote&gt;
    &lt;p&gt;I wish to emphasize the (current) lack of an analogue of &quot;darcs amend&quot; in Mercurial. In the same way I compulsively save a source file whenever I stop typing, I like to compulsively record incomplete patches in my local working repository and then incrementally re-record them until the patch is complete (whereupon I push it upstream).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can easily do that via MQ, but it&#039;s noticeably more involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a new patch via &lt;code&gt;hg qnew &quot;commitmessage&quot; patchname&lt;/code&gt; (add &lt;code&gt;-f&lt;/code&gt; if you already have changes in your working directories)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refresh the patch with &lt;code&gt;hg qrefresh&lt;/code&gt;, or just create new patches on top of the old one and merge everything later&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[OPTIONAL] If you used the second solution (create several patches), &lt;code&gt;hg qgoto&lt;/code&gt; the initial patch, then &lt;code&gt;hg qfold&lt;/code&gt; to fold all the patches into the original one&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, &lt;code&gt;hg qdel-r qbase:qtip&lt;/code&gt; will transform all your MQ patches into regular Mercurial revisions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The edge over &lt;code&gt;darcs amend&lt;/code&gt; is that unless you specifically ask that they are, &lt;code&gt;mq&lt;/code&gt; patches are not versioned, thus can&#039;t be pulled by someone pulling from you.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<blockquote>
<p>I wish to emphasize the (current) lack of an analogue of &#8220;darcs amend&#8221; in Mercurial. In the same way I compulsively save a source file whenever I stop typing, I like to compulsively record incomplete patches in my local working repository and then incrementally re-record them until the patch is complete (whereupon I push it upstream).</p>
</blockquote>
<p>You can easily do that via MQ, but it&#8217;s noticeably more involved:</p>
<ul>
<li>
<p>Create a new patch via <code>hg qnew "commitmessage" patchname</code> (add <code>-f</code> if you already have changes in your working directories)</p>
</li>
<li>
<p>Refresh the patch with <code>hg qrefresh</code>, or just create new patches on top of the old one and merge everything later</p>
</li>
<li>
<p>[OPTIONAL] If you used the second solution (create several patches), <code>hg qgoto</code> the initial patch, then <code>hg qfold</code> to fold all the patches into the original one</p>
</li>
<li>
<p>Finally, <code>hg qdel-r qbase:qtip</code> will transform all your MQ patches into regular Mercurial revisions</p>
</li>
</ul>
<p>The edge over <code>darcs amend</code> is that unless you specifically ask that they are, <code>mq</code> patches are not versioned, thus can&#8217;t be pulled by someone pulling from you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin</title>
		<link>http://hans.fugal.net/blog/2007/11/20/darcs-and-mercurial-redux/comment-page-1/#comment-1663</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Wed, 31 Dec 1969 17:00:00 +0000</pubDate>
		<guid isPermaLink="false">urn:uuid:3e72ae86-0aed-4a1c-a665-8545b8e7d2b0#comment-1663</guid>
		<description>&lt;p&gt;for ignoring patches you don&#039;t want to pull in darcs, check out the complement repo flag (new). basically, you build a repo with all the patches you don&#039;t want, and tell darcs that is the complement repo, and it won&#039;t prompt you to pull the patches in your complement repo.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>for ignoring patches you don&#8217;t want to pull in darcs, check out the complement repo flag (new). basically, you build a repo with all the patches you don&#8217;t want, and tell darcs that is the complement repo, and it won&#8217;t prompt you to pull the patches in your complement repo.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
