<?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>Capi's Corner &#187; subversion</title>
	<atom:link href="http://www.dont-panic.cc/capi/tag/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dont-panic.cc/capi</link>
	<description>Development, Network, Security, Ideas &#038; Opinions</description>
	<lastBuildDate>Sat, 10 Dec 2011 19:31:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>git-svn fails with fatal error: unable to remap</title>
		<link>http://www.dont-panic.cc/capi/2007/10/29/git-svn-fails-with-fatal-error-unable-to-remap/</link>
		<comments>http://www.dont-panic.cc/capi/2007/10/29/git-svn-fails-with-fatal-error-unable-to-remap/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 12:41:04 +0000</pubDate>
		<dc:creator>Martin Carpella</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.dont-panic.cc/capi/2007/10/29/git-svn-fails-with-fatal-error-unable-to-remap/</guid>
		<description><![CDATA[Git&#8216;s nice Subversion (SVN) integration is one of the reasons I switched to using it within our company for my own revision control besides our official repository. Unfortunately, upgrading cygwin broke my system once again: $ git svn dcommit 6 [main] perl 4760 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\lib\perl5\site_perl\5.8\cygwin\auto\SVN\_Core\_ Core.dll to same [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://git.or.cz/">Git</a>&#8216;s nice <a href="http://subversion.tigris.org/">Subversion</a> (SVN) integration is one of the reasons I switched to using it within our company for my own revision control besides our official repository. Unfortunately, upgrading <a href="http://www.cygwin.com/">cygwin</a> broke my system once again:</p>
<blockquote style="text-align: left;"><p><code>$ git svn dcommit</code><br />
<code>6 [main] perl 4760 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\lib\perl5\site_perl\5.8\cygwin\auto\SVN\_Core\_ Core.dll to same address as parent(0x260000) != 0x990000 84 [main] perl 3224 fork: child 4760 - died waiting for dll loading, errno 11 panic: MUTEX_LOCK (45) [util.c:2331] at /usr/bin/git-svn line 787. panic: MUTEX_LOCK (45) [op.c:352].</code></p></blockquote>
<p>The reason behind this behavior is a huge difference in the way processes and threads and libraries are created/handled on Windows and Linux. <code>git-svn</code> relies on perl within cygwin and several perl libraries that use the same base-address for libraries internally. Of course, no two libraries can be loaded to the same base-address at the same time.</p>
<p>Long explanation, short way to fix the problem:</p>
<ol>
<li>Quit all cygwin processes</li>
<li>Start <em>ash</em> (&lt;cygroot&gt;\bin\ash.exe) (&lt;edit&gt;Use &#8220;Run as Administrator&#8230;&#8221;&lt;/edit&gt;)</li>
<li>Execute <em>/usr/bin/rebaseall</em></li>
</ol>
<p>Voilla, that&#8217;s all. git-svn should work again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dont-panic.cc/capi/2007/10/29/git-svn-fails-with-fatal-error-unable-to-remap/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>git-svn on Windows (cygwin)</title>
		<link>http://www.dont-panic.cc/capi/2007/07/23/git-svn-on-windows-cygwin/</link>
		<comments>http://www.dont-panic.cc/capi/2007/07/23/git-svn-on-windows-cygwin/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 17:34:25 +0000</pubDate>
		<dc:creator>Martin Carpella</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.dont-panic.cc/capi/2007/07/23/git-svn-on-windows-cygwin/</guid>
		<description><![CDATA[Update 2008-10-10: Often perl will not work due to memory-remapping problems. A solution can be found in my article about the issue. What I really love about Git is the fact that it nicely integrates with existing Subversion repositories. At our company, we are using Subversion as our SCM, but I personally like Git more [...]]]></description>
			<content:encoded><![CDATA[<div style="border-style: dashed; border-width: 1px; margin-top: 14px;padding: 4px; background: #f0f0f0;"><strong>Update 2008-10-10:</strong> Often perl will not work due to memory-remapping problems. A solution can be found in <a href="http://www.dont-panic.cc/capi/2007/10/29/git-svn-fails-with-fatal-error-unable-to-remap/">my article about the issue</a>.</div>
<p>What I really love about <a href="http://git.or.cz/">Git</a> is the fact that it nicely integrates with existing <a href="http://subversion.tigris.org/">Subversion</a> repositories. At our company, we are using Subversion as our <a href="http://en.wikipedia.org/wiki/Revision_control">SCM</a>, but I personally like Git more and I want to use it as a side tool for more flexible branching, merging, and for checking in versions I wouldn&#8217;t check in the shared repository.</p>
<p>Git is supplied with <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git-svn</a>, which can import an existing SVN repository and also commit back to it. Under cygwin, you need to perform two additional steps for getting git-svn to work, otherwise it is likely to fail with &#8220;failed to include Error.pm&#8221;.</p>
<ul>
<li>subversion-perl (install via <a href="http://www.cygwin.com/">cygwin</a>&#8216;s <a href="http://www.cygwin.com/setup.exe">setup.exe</a>)</li>
<li>Error.pm</li>
</ul>
<p>You need to <a href="http://search.cpan.org/src/UARUN/Error-0.15/Error.pm">download Error.pm from CPAN</a>. You have to save it to &lt;cygwin-dir&gt;\lib\perl5\Error.pm</p>
<p>Voila! git-svn should work now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dont-panic.cc/capi/2007/07/23/git-svn-on-windows-cygwin/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Project Management with Trac</title>
		<link>http://www.dont-panic.cc/capi/2006/08/17/project-management-with-trac/</link>
		<comments>http://www.dont-panic.cc/capi/2006/08/17/project-management-with-trac/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 20:41:49 +0000</pubDate>
		<dc:creator>Martin Carpella</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[issue-tracking]]></category>
		<category><![CDATA[project-management]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.dont-panic.cc/capi/archives/46</guid>
		<description><![CDATA[Trac is a powerful web-tool for managing projects. It combines a Wiki, trouble tickets and repository browsing into one powerful package with stunning features. All types of content can easily be interlinked, as all parts interprete the common wiki link-style. For instance, &#8220;#123&#8243; will be converted to a link to trouble ticket #123, and &#8220;r123&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://trac.edgewall.org/">Trac</a> is a powerful web-tool for managing projects. It combines a Wiki, trouble tickets and repository browsing into one powerful package with stunning features.</p>
<p><span id="more-46"></span> All types of content can easily be interlinked, as all parts interprete the common wiki link-style. For instance, &#8220;#123&#8243; will be converted to a link to trouble ticket #123, and &#8220;r123&#8243; or &#8220;[123]&#8221; will be converted to a link to the changeset (revision) 123 of the version control system. The same syntax is also interpreted for each commit entry or within the description of tickets, which provides a fast means of navigating to related ressources.</p>
<p>All information is displayed clearly in a timeline view. Changesets provide powerful and clear diff-views to show what has really been changed and the repository can be browsed for any given revision number. Any changeset can be downloaded as ZIP file, as unified diff or as individual files.</p>
<p>The trouble ticket system is not as powerful as <a href="http://www.bugzilla.org">Bugzilla</a>&#8216;s as it provides no distinction for multiple projects, but it is used more fluently and provides everything needed for a single project (regardless of size of the project).</p>
<p>A milestone view allows clear and easy planning of various releases and milestones and provides powerful progress measuring features.</p>
<p>We are currently using Trac for project management of our project. We had an existing Bugzilla database that had to be converted to Trac before we could use the tool. I used the script <a href="http://trac.edgewall.org/browser/trunk/contrib/bugzilla2trac.py?rev=3544">bugzilla2trac.py</a> (rev. 3544, but check if there is a newer version). Our Bugzilla version was 2.20, the script officially only supports upto 2.19. Still, only one minor change was needed to get the import working with the 2.20 database scheme. At line 405, change the line to read</p>
<p style="text-align: left; margin-left: 40px"><code>mysql_cur.execute("SELECT * FROM attachments a INNER JOIN attach_data ad ON ad.id=a.attach_id WHERE bug_id = %s" % bugid) </code></p>
<p>The import worked flawless, everything including attachments was imported, and (most importantly for being in-sync with our SVN commit-messages), the bug numbers where kept identical.</p>
<p>Trac at the moment only supports <a href="http://subversion.tigris.org">Subversion</a> as version control system; they are working on integrating other VCs as well. Trac needs local access to the repository, as they access the repository directly, not via HTTP. It might however be possible to use a remote repository which is mounted locally using one of the many remote-fs available.</p>
<p>Trac natively uses <a href="http://www.sqlite.org/">SQLite</a> as database backend for storing its data, official release also contains support for <a href="http://www.postgresql.org/">PostgreSQL</a> and the current development version also works with <a href="http://www.mysql.com">MySQL</a>. I am using the SQLite backend which caused litte problems:</p>
<p>Trac is written in Python, so for optimal performance it is best to use it with mod_python if you are using Apache. Be aware however, that if you also have mod_php (PHP 5) installed and mod_php/PHP is compiled with SQLite support, mod_python will not be able to read SQLite databases. <em>A recompile of PHP without SQLite support solved the issue for me.</em></p>
<p>One last word about administration of Trac. Trac provides a powerful command-line util called <em>trac-admin</em> which gives you access to various settings. You use this tool for adding permissions to users, setting up components and managing severities for tickets. Most importantly, this tool also provides a means for backing up Trac: &#8220;trac-admin &lt;repository&gt; hotcopy &lt;bak-dir&gt;&#8221; will copy the current Trac environment to the backup location, while ensuring database transaction integrity.</p>
<p>One thing I want to mention here too is the fact that one installation of Trac can be used for several independent projects. For each project, a &#8220;Trac environment&#8221; is set up using trac-admin. The databases of the individual environments are independent, but they share the same codebase, so updating Trac updates it for every existing environment.</p>
<p>Concluding I want to say that Trac is definitely worth a try, you can even quick-test it by using its own webserver, so you do not have to set up Apache for use with Trac. This is however not recommended for production use.</p>
<p>Using Trac, project management, milestone planning, issue tracking, and documentation become fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dont-panic.cc/capi/2006/08/17/project-management-with-trac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

