<?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>MrBlog &#187; revision control</title>
	<atom:link href="http://mrblog.nl/category/revision-control/feed" rel="self" type="application/rss+xml" />
	<link>http://mrblog.nl</link>
	<description>eliminating my ignorance one bit at a time</description>
	<lastBuildDate>Thu, 12 Jan 2012 09:54:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19847</generator>
	<atom:link rel='hub' href='http://mrblog.nl/?pushpress=hub'/>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><atom:link rel='salmon' href='http://mrblog.nl/?salmon=endpoint'/><atom:link rel='http://salmon-protocol.org/ns/salmon-replies' href='http://mrblog.nl/?salmon=endpoint'/><atom:link rel='http://salmon-protocol.org/ns/salmon-mention' href='http://mrblog.nl/?salmon=endpoint'/>		<item>
		<title>Xaraya commit history on video</title>
		<link>http://mrblog.nl/2010/04/11/xaraya-commit-history-on-video.html</link>
		<comments>http://mrblog.nl/2010/04/11/xaraya-commit-history-on-video.html#comments</comments>
		<pubDate>Sun, 11 Apr 2010 12:07:00 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[revision control]]></category>
		<category><![CDATA[xaraya]]></category>

		<guid isPermaLink="false">http://mrblog.nl/?p=826</guid>
		<description><![CDATA[Played a little with the gource log visualizer today. It is typically used to visualize committed revisions in a revision control system, although any system that logs events of some kind could be made to work with it I suppose. I happen to have a repository of xaraya going back to 2002 in git, so [...]]]></description>
			<content:encoded><![CDATA[<p>Played a little with the <a href='http://code.google.com/p/gource/' rel='external ' title='Gource revision log visualizer'>gource</a> log visualizer today. It is typically used to visualize committed revisions in a revision control system, although any system that logs events of some kind could be made to work with it I suppose.</p>

<p>I happen to have a repository of xaraya going back to 2002 in git, so I thought I&#8217;d give it a shot.</p>

<p>&#8230;more time passes than originally planned&#8230;</p>

<h4>Result</h4>

<p>8 years of commit history in 10 minutes of video. Produced with <a href='http://code.google.com/p/gource/' rel='external ' title='Gource revision log visualizer'>gource</a> from a git repository of <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a>. The video traces the 2.x main branch back to its origin, repository wise. The start is the import of the CVS postnuke repository into Bitkeeper. Since then xaraya has switched to monotone.</p>

<h5>Gource settings used:</h5>

<pre><code class="prettyprint"><a href='http://code.google.com/p/gource/' rel='external ' title='Gource revision log visualizer'>gource</a> --stop-position 1.0 \
       --camera-mode overview \
       --bloom-intensity 0.18 \
       --user-image-dir .git/avatar \
       --highlight-all-users \
       --output-framerate 60 \
       -s 0.5 \
       -720x576 \
       -a 0.3 \
       --hide filenames \
       --user-scale 1.4 \
       --date-format %Y-%m-%d \
       --disable-progress \
       --output-ppm-stream - \
| ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -vpre default <a href='http://code.google.com/p/gource/' rel='external ' title='Gource revision log visualizer'>gource</a>.mp4
</code></pre>

<p>This produced a video of 11 min. 35 seconds. To bring it back to 10 minutes the framerate was increased until the total time fell just below 10 minutes.﻿</p>

<p style="text-align: center"><object width="480" height="385">
<param name="movie" value="http://www.youtube.com/v/fIeDCeh3uL8&amp;hl=en_US&amp;fs=1&amp;" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/fIeDCeh3uL8&amp;hl=en_US&amp;fs=1&amp;"></embed>
</object>
</p>

<p>I specifically wanted <strong>the whole</strong> history to be in one video of 10 minutes (the Youtube maximum) which means compromising a bit on the quality. If there are things I can do within these assumptions to improve the video, I&#8217;d like to hear them.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2010/04/11/xaraya-commit-history-on-video.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eating my own dogfood</title>
		<link>http://mrblog.nl/2005/12/30/eating-my-own-dogfood.html</link>
		<comments>http://mrblog.nl/2005/12/30/eating-my-own-dogfood.html#comments</comments>
		<pubDate>Fri, 30 Dec 2005 08:43:19 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[revision control]]></category>
		<category><![CDATA[xaraya]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/104</guid>
		<description><![CDATA[We have been considering migrating Xaraya to the creole abstraction layer in the future. Creole is similar to the adodb library we use now. Originally the support for Creole was created to be able to implement a MS-SQL proof of concept quickly. After using the library for a bit I found it much easier to [...]]]></description>
			<content:encoded><![CDATA[<p>We have been considering migrating <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> to the creole abstraction layer in the future. Creole is similar to the <a href="http://adodb.sourceforge.net/" title="adodb library">adodb library</a> we use now. Originally the support for Creole was created to be able to implement a MS-SQL proof of concept quickly. After using the library for a bit I found it much easier to work with than adodb. Creole&#8217;s API is much cleaner and it is PHP5 only, which gives us a head start for future <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> versions.</p>

<p>The <a href="http://monotone.ca" title="Monotone">monotone</a> setup we use allows us to test all this without disturbing main line development. Organizing these bigger changes into scenario&#8217;s allows us to isolate these changes and see where they lead to. The decision to use or to throw away can thus be postponed to a time when we&#8217;re ready to do so.</p>

<p>Since replacing the middleware is potentially a very big step, I noticed we (the <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> group) have some trouble making a decision on what to do with this. Therefore, the creole scenario has been merged into this site to show that a real life site (albeit a small one) can be migrated to creole without any effect. (Note: I&#8217;ve been running creole on other installs for a while now, so I&#8217;ve known this for a while)</p>

<p><strong>Verdict:</strong> one change was necessary to wrap the &#8216;GetRowAssoc&#8217;method present in adodb but not in creole. Everything else worked directly after the merge, so my preliminary conclusion if the decision hangs on &#8216;what impact does this have?&#8217;is that the impact is very minimal. On top of that I think that the issues we might run into are not bad things as such, but chances to improve <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2005/12/30/eating-my-own-dogfood.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shelving in revision control</title>
		<link>http://mrblog.nl/2005/04/06/shelving-in-revision-control.html</link>
		<comments>http://mrblog.nl/2005/04/06/shelving-in-revision-control.html#comments</comments>
		<pubDate>Wed, 06 Apr 2005 12:26:28 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[revision control]]></category>
		<category><![CDATA[xaraya]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/88</guid>
		<description><![CDATA[Chris Rathjen : Team Foundation vs. Subversion: Shelving: Chris compares the two different mechanisms used for a concept introduced in Team Foundation (TFS) known as Shelving. It is a concept where you put a certain state of your development environment ( workspace, repository, whatever the local term is you are used to) aside (on a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/crathjen/archive/2005/04/01/404707.aspx">Chris Rathjen : Team Foundation vs. Subversion: Shelving</a>:</p>

<p>Chris compares the two different mechanisms used for a concept introduced in Team Foundation (TFS) known as Shelving. It is a concept where you put a certain state of your development environment ( workspace, repository, whatever the local term is you are used to) aside (on a shelf), work on some other stuff and take the shelved state back into your workspace (UnShelve) when ready.</p>

<p>Let me add a few notes on how we do this in <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> with BitKeeper.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2005/04/06/shelving-in-revision-control.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feature: No More Free BitKeeper</title>
		<link>http://mrblog.nl/2005/04/06/feature-no-more-free-bitkeeper.html</link>
		<comments>http://mrblog.nl/2005/04/06/feature-no-more-free-bitkeeper.html#comments</comments>
		<pubDate>Wed, 06 Apr 2005 10:46:54 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[people]]></category>
		<category><![CDATA[revision control]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/87</guid>
		<description><![CDATA[Feature: No More Free BitKeeper: Linus, not interested in a one sided deal even when he&#8217;s on the winning side, decided for this and other reasons to migrate away from BitKeeper and to begin looking for an alternative. It will be interesting to see how this works out.]]></description>
			<content:encoded><![CDATA[<p><a href="http://kerneltrap.org/node/4966">Feature: No More Free BitKeeper</a>:<br />
Linus, not interested in a one sided deal even when he&#8217;s on the winning side, decided for this and other reasons to migrate away from BitKeeper and to begin looking for an alternative.</p>

<p>It will be interesting to see how this works out.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2005/04/06/feature-no-more-free-bitkeeper.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I just passed a 1000 csets in Xaraya</title>
		<link>http://mrblog.nl/2003/10/29/i-just-passed-a-1000-csets-in-xaraya.html</link>
		<comments>http://mrblog.nl/2003/10/29/i-just-passed-a-1000-csets-in-xaraya.html#comments</comments>
		<pubDate>Wed, 29 Oct 2003 06:24:26 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[revision control]]></category>
		<category><![CDATA[xaraya]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/34</guid>
		<description><![CDATA[Some hours ago my changeset number 1000 went into the xaraya repository. As you can see in the comments, it&#8217;s not a good one, basically cleaning up some mess i made earlier that day. Nevertheless, it&#8217;s there]]></description>
			<content:encoded><![CDATA[<p>Some hours ago my changeset number 1000 went into the xaraya repository.</p>

<p>As you can see in the comments, it&#8217;s not a good one, basically cleaning up some mess i made earlier that day.</p>

<p>Nevertheless, it&#8217;s there</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2003/10/29/i-just-passed-a-1000-csets-in-xaraya.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>source control infrastructure growth</title>
		<link>http://mrblog.nl/2003/10/21/source-control-infrastructure-growth.html</link>
		<comments>http://mrblog.nl/2003/10/21/source-control-infrastructure-growth.html#comments</comments>
		<pubDate>Tue, 21 Oct 2003 16:58:20 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[revision control]]></category>
		<category><![CDATA[xaraya]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/16</guid>
		<description><![CDATA[Using a script from Bryan O&#8217;Sullivans bitkeeper repository we integrated the bitkeeper repositories for Xaraya with our bugzilla installation. The script is used as a trigger everytime changes are committed to the main repositories on the server and scans the changeset comments for text fragments mentioning bugs. When it finds those fragments, the following happens: [...]]]></description>
			<content:encoded><![CDATA[<p>Using a script from Bryan O&#8217;Sullivans bitkeeper repository we integrated the bitkeeper repositories for <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> with our <a href="http://bugs.xaraya.com">bugzilla installation</a>. The script is used as a trigger everytime changes are committed to the main repositories on the server and scans the changeset comments for text fragments mentioning bugs.</p>

<p>When it finds those fragments, the following happens:</p>

<ul>
  <li>the change committed is attached as a patch to the bug; (this patch can in most cases be applied to source trees out there, while maintaining upgradeability)</li>

  <li>a comment is entered for the bug, summarizing what happened;</li>

  <li>links are created in the comment to view the path in the bitkeeper web interface;</li>

  <li>bugzilla mails the relevant parties as usual.</li>
</ul>

<p>This script is smart enough, not to enter the same information on the same bug and changeset twice which, if you know how bitkeeper works, is not uncommon if you have multiple repositories. As always, on deploying something new, you always start to think immediately about features which you could add (example: scanning for <em>fixed&amp;nbsp;</em> or <em>fix&amp;nbsp;</em> and setting the state of the bug accordingly).</p>

<p>During the period of&amp;nbsp; little over a year, we&#8217;ve built ourselves an infrastructure which is still growing and is literally improved upon everyday. Some elements of it:</p>

<ul>
  <li>automatic updates of mirror repositories;</li>

  <li>fully integrated patch system;</li>

  <li>custom command system, defining new commands in the repository which propagate to all developer repositories;</li>

  <li>funny stats output;</li>

  <li>getting information on RFC status;</li>

  <li>integrated build system based on <a href="http://phing.info">phing</a>;</li>

  <li>integrated source documentation generator based on <a href="http://phpdocu.sourceforge.net/">phpdoc</a>;</li>

  <li>repository web interface as module of xaraya;</li>

  <li>adding comments to files which propagate across repositories;</li>

  <li>integrated unit test system;</li>

  <li>semi-automatic archiving of old files in the repositories;</li>

  <li>possibility to test for compliance with coding standards on every commit automatically;</li>
</ul>

<p>With hindsight, a rather long list of tools, mainly created for fun. Some are used extensively, others are only used by myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2003/10/21/source-control-infrastructure-growth.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit testing framework</title>
		<link>http://mrblog.nl/2003/03/19/unit-testing-framework.html</link>
		<comments>http://mrblog.nl/2003/03/19/unit-testing-framework.html#comments</comments>
		<pubDate>Wed, 19 Mar 2003 06:06:12 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[revision control]]></category>
		<category><![CDATA[xaraya]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/29</guid>
		<description><![CDATA[Last week we started implementing a unit testing framework for Xaraya, which is highly integrated with the bitkeeper repository. As of now it allows you to register testsuites and testcases which can be run once or repeatedly with bk tests I expected this to be an investment for the long run. The longer we used [...]]]></description>
			<content:encoded><![CDATA[<p>Last week we started implementing a unit testing framework for <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a>, which is highly integrated with the bitkeeper repository.</p>

<p>As of now it allows you to register testsuites and testcases which can be run once or repeatedly with</p>

<pre>
bk tests
</pre>

<p>I expected this to be an investment for the long run. The longer we used it, sometimes the tests would fail and we could fix things<br />
more quickly. To my surprise the tests started failing basically right from the beginning, even when very premature code was available.<br />
Both bugs in the testframework as in the codebase itself showed up immediately.</p>

<p>I found that the crux to this is that having a test framework puts your mind in a <em>different state</em>. While developing you&#8217;re trying to make things work, while writing tests you&#8217;re trying to make things break. This combination has worked already in the early stages, i can hardly wait to see how this is going to work when the number of tests starts to grow and we actually use that information in our process.</p>

<p>The scepsis has gone, unit testing rocks!</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2003/03/19/unit-testing-framework.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BK-view Xaraya module</title>
		<link>http://mrblog.nl/2003/02/09/bk-view-xaraya-module.html</link>
		<comments>http://mrblog.nl/2003/02/09/bk-view-xaraya-module.html#comments</comments>
		<pubDate>Sun, 09 Feb 2003 05:56:35 +0000</pubDate>
		<dc:creator>mrb</dc:creator>
				<category><![CDATA[revision control]]></category>

		<guid isPermaLink="false">http://marcel.hsdev.com/blogentry/25</guid>
		<description><![CDATA[Today the BK-view module I wrote for Xaraya went into a live site which can actually be used for something usefull. The site http://bk.xaraya.com is the BitKeeper central for the Xaraya project. The BK-view module is used to browse through all of the clones used in the project, which is in the mean time a [...]]]></description>
			<content:encoded><![CDATA[<p>Today the BK-view module I wrote for <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> went into a live site which can actually be used for something usefull.</p>

<p>The site http://bk.xaraya.com is the BitKeeper central for the <a href='http://xaraya.com' rel='external ' title='Xaraya web application framework'>Xaraya</a> project. The BK-view module is used to browse through all of the clones used in the project, which is in the mean time a rather large number, and I&#8217;ve only included the top level clones.</p>

<p>The clones from the clones are not even in there.</p>
]]></content:encoded>
			<wfw:commentRss>http://mrblog.nl/2003/02/09/bk-view-xaraya-module.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

