<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mithro rants about stuff &#187; darcs</title>
	<atom:link href="http://blog.mithis.net/archives/category/rcs/darcs/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.mithis.net</link>
	<description></description>
	<lastBuildDate>Sun, 03 Jan 2010 04:10:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using Tailor to go to git</title>
		<link>http://blog.mithis.net/archives/tp/35-using-tailor-to-go-to-git</link>
		<comments>http://blog.mithis.net/archives/tp/35-using-tailor-to-go-to-git#comments</comments>
		<pubDate>Sat, 21 Apr 2007 08:17:42 +0000</pubDate>
		<dc:creator>mithro</dc:creator>
				<category><![CDATA[Tailor]]></category>
		<category><![CDATA[Thousand Parsec]]></category>
		<category><![CDATA[darcs]]></category>

		<guid isPermaLink="false">http://blog.mithis.net/archives/uncategorized/35-using-tailor-to-go-to-git</guid>
		<description><![CDATA[As our code repositories for Thousand Parsec where down anyway (because of the host being compromised), we decided to do something we had been thinking about for a while. We converted all our code repositories to git.
We had previously been using darcs, however the unbounded memory usage was getting out of hand. The straw which [...]]]></description>
			<content:encoded><![CDATA[<p>As our code repositories for Thousand Parsec where down anyway (<a href="http://www.thousandparsec.net/tp/news.php/2007-04-14-1400">because of the host being compromised</a>), we decided to do something we had been thinking about for a while. We converted all our code repositories to git.</p>
<p>We had previously been using <a href="http://darcs.net">darcs</a>, however the unbounded memory usage was getting out of hand. The straw which broke the camel&#8217;s back was when nash couldn&#8217;t even checkout the web repository because darcs kept getting killed by the Out of Memory Manager (on a machine which has more then 512Mb of RAM).</p>
<p>After much discussion we decided to move to <a href="http://git.or.cz/">git</a>. The biggest reason we choose to use git was that we didn&#8217;t want to get stuck with another non-mainstream SCM system. With large people like <a href="http://www.freedesktop.org/wiki/Infrastructure/git">Xorg</a>, the <a href="http://www.kernel.org/">Linux Kernel</a> and many others, I&#8217;m pretty sure git will become the SCM of choice in the near future.</p>
<p>As I had previously had a large amount of experience <a href="http://blog.mithis.com/2007/02/25/using-tailor-creating-subversion-repository-for-thousand-parsec/">converting the darcs repositories to subversion</a> (for our mirrors), I was put in charge of converting the repositories to git. As previously, I used <a href="http://progetti.arstecnica.it/tailor">Tailor</a>.</p>
<p>The first problem is that darcs has <a href="http://darcs.net/DarcsWiki/DarcsGit">git repository support</a>. The suppose solution to this is using <a href="http://progetti.arstecnica.it/tailor/wiki/DisjunctWorkingDirectories">disjunct working directories</a>. However, git did not appear to like this, I need to hack up the source code to get it to work. I&#8217;ve submitted the patches back the Tailor repository and they have already been included!</p>
<p>Another problem I ran into was that I don&#8217;t have a machine which has enough memory to convert the web repository! I don&#8217;t have a computer with more then 768mb of ram (feel free to send me some more if you want! <img src='http://blog.mithis.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ). Luckily thanks to the <a href="http://code.google.com/soc/">Summer of Code</a>, a student who goes by the name cherez (who I was very disappointed we didn&#8217;t have enough slots to select) gave me a shell account on his machine with 4Gb of Ram.</p>
<p>As a result of converting to git, I was also able to merge the development and stable branches (of both tpclient-pywx and libtpclient-py) into one repository. This was a little bit trickier then I would have liked, it involved finding the branch point manually and then telling tailor about it, in the end it worked out. You can find a copy of the config I used for branching <a href="http://www.thousandparsec.net/~tim/tailor/tpclient-pywx-dev.tailor">here</a>.</p>
<p>You can see the results of our conversion at our <a href="http://git.thousandparsec.net/">gitweb</a>.</p>
<p>I have to say, I&#8217;m amazed by git. Every single operation is very, very fast, I guess it&#8217;s why they called themselves &#8220;Git &#8211; Fast Version Control System&#8221;. Another thing that amazes me is the size of the repositories, under darcs our repositories where about 4Gb, with git they are around 200Mb! Overall, I&#8217;m happy with our choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mithis.net/archives/tp/35-using-tailor-to-go-to-git/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>darcs almost perfect.</title>
		<link>http://blog.mithis.net/archives/rcs/darcs/19-darcs-almost-perfect</link>
		<comments>http://blog.mithis.net/archives/rcs/darcs/19-darcs-almost-perfect#comments</comments>
		<pubDate>Mon, 26 Feb 2007 05:07:56 +0000</pubDate>
		<dc:creator>mithro</dc:creator>
				<category><![CDATA[darcs]]></category>

		<guid isPermaLink="false">http://blog.mithis.net/archives/darcs/19-darcs-almost-perfect</guid>
		<description><![CDATA[Darcs is a really cool SCM system. We use it for Thousand Parsec and I really like all the way it works. However there are some very annoying bugs which keep pissing me off. So now I&#8217;m going to rant about what these problems are,

Using Massive amounts of memory with Binary files
Darcs is an absolute [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://darcs.net/">Darcs</a> is a really cool SCM system. We use it for Thousand Parsec and I really like all the way it works. However there are some very annoying bugs which keep pissing me off. So now I&#8217;m going to rant about what these problems are,</p>
<dl>
<dt>Using Massive amounts of memory with Binary files</dt>
<dd>Darcs is an absolute memory hog when you try and use it to manage even small binary files. I have seen it balloon to over 700mb on a little 7mb binary file. This keeps biting me in the arse because we are using darcs to manage our <a href="http://darcs.thousandparsec.net/darcsweb/darcsweb.cgi?r=web;a=summary">web repository</a>. It&#8217;s starting to get so bad I&#8217;m thinking of switching that repository to <a href="http://subversion.tigris.org/">subversion</a>. We have already had to convert our <a href="http://www.thousandparsec.net/svn/media/">media</a> repository to subversion because of this problem :-/.</dd>
<dt>Not using good terminal interaction.</dt>
<dd>Darcs is design to be used interactively. However it crashes if you send it weird control characters or other strange stuff. It also doesn&#8217;t let you use the cursor keys to change long message title and such. Currently I have to use the &#8220;add long comment&#8221; if I want to fix anything in a patch title (which is very annoying for small patches).</dd>
<dt>Darcs being written in Haskel</dt>
<dd>By writing Darcs in <a href="http://www.haskell.org/haskellwiki/Haskell">Haskel</a> I am unable to try and fix the above bugs. It is also the main reason using Darcs under &#8220;alternative&#8221; operating systems (such as Windows or Mac OS X) sucks so much (getting a working Haskell compiler is a real chore). Even when you do get it working it doesn&#8217;t quite fit properly (and the console IO is even more fragile). Mathematical correctness doesn&#8217;t mean you code doesn&#8217;t have any bugs. Being unusable is very much a huge bug.</dd>
</dl>
<p>It&#8217;s starting to get to the Stage that I&#8217;m considering other SCM tools such as <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> or maybe even <a href="http://monotone.ca/">monotone</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mithis.net/archives/rcs/darcs/19-darcs-almost-perfect/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Tailor &#8211; Creating Subversion Repository for Thousand Parsec</title>
		<link>http://blog.mithis.net/archives/tp/16-tailor-darcs2svn-tp</link>
		<comments>http://blog.mithis.net/archives/tp/16-tailor-darcs2svn-tp#comments</comments>
		<pubDate>Sun, 25 Feb 2007 15:01:22 +0000</pubDate>
		<dc:creator>mithro</dc:creator>
				<category><![CDATA[Thousand Parsec]]></category>
		<category><![CDATA[darcs]]></category>

		<guid isPermaLink="false">http://blog.mithis.net/archives/tp/16-using-tailor</guid>
		<description><![CDATA[To try and get our activity rating up on SourceForge I&#8217;m in the progress of trying to mirror our darcs repositories in SourceForge&#8217;s SVN repositories.
This would also be useful for things like oholh as JLP pointed out. It might make it easier for people to track the development version under Windows/Mac as they wouldn&#8217;t need [...]]]></description>
			<content:encoded><![CDATA[<p>To try and get our activity rating up on <a href="http://www.sf.net/projects/thousandparsec">SourceForge</a> I&#8217;m in the progress of trying to mirror our darcs repositories in SourceForge&#8217;s SVN repositories.</p>
<p>This would also be useful for things like <a href="http://www.ohloh.net/projects/3679">oholh</a> as JLP pointed out. It might make it easier for people to track the development version under Windows/Mac as they wouldn&#8217;t need to get a working darcs version.</p>
<p>To do this I need to use a program called <a href="http://progetti.arstecnica.it/tailor">Tailor</a> which lets you convert between a wide range of different SCM systems. It took me a while to get a combination of tailor, darcs and svn which seems to work okay.</p>
<p>What I ended up with is the following <a href="http://blog.mithis.net/wp-content/uploads/2007/02/darcs2svn-start.sh" title="Darcs to Subversion Conversion script.">Darcs to Subversion Conversion script.</a></p>
<p>Each time you run it, it rebuilds the svn repository from scratch. This was useful during testing so that I could get my comment formatting correct (and fiddle with the other settings).</p>
<p>A ran into another problem however, to use Tailor and get nice author and actual commit date you need the <a href="http://progetti.arstecnica.it/tailor/browser/README#L806">special hook</a> installed. This hook is just an <a href="http://svnbook.red-bean.com/en/1.0/ch05s02.html#svn-ch-5-sect-2.1">empty pre-revprop-change</a>. However, SourceForge in all their wisdom don&#8217;t have support for this yet, there is a <a href="https://sourceforge.net/tracker/?func=detail&amp;aid=1480553&amp;group_id=1&amp;atid=350001">pending change request</a> but it hasn&#8217;t been touched in about 3 months. Here is hoping they figure out something in the near future. There have been about 20 requests if you do a search for pre-revprop-change.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mithis.net/archives/tp/16-tailor-darcs2svn-tp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
