<?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>critical_log</title>
	<atom:link href="http://criticallog.thornet.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://criticallog.thornet.net</link>
	<description>PrOOfeK&#039;s critical log file</description>
	<lastBuildDate>Tue, 10 Aug 2010 22:02:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>phpUnderControl 0.6.0 released</title>
		<link>http://criticallog.thornet.net/?p=87</link>
		<comments>http://criticallog.thornet.net/?p=87#comments</comments>
		<pubDate>Tue, 10 Aug 2010 22:02:32 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pro]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[buildbox]]></category>
		<category><![CDATA[changes]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[codesniffer]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[hpbuniat]]></category>
		<category><![CDATA[Manuel Pichler]]></category>
		<category><![CDATA[phpcpd]]></category>
		<category><![CDATA[phpmd]]></category>
		<category><![CDATA[phpUnderControl]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software metrics]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=87</guid>
		<description><![CDATA[I am pleased to announce that new version of phpUnderControl is out.
You can install it through its pear channel:
proofek@home:~$ sudo pear channel-discover pear.phpundercontrol.org
Adding Channel "pear.phpundercontrol.org" succeeded
Discovery of channel "pear.phpundercontrol.org" succeeded
proofek@home:~$ sudo pear install --alldeps phpuc/phpUnderControl-0.6.0
downloading phpUnderControl-0.6.0.tgz ...
Starting to download phpUnderControl-0.6.0.tgz (545,857 bytes)
.............................................................................................................done: 545,857 bytes
install ok: channel://pear.phpundercontrol.org/phpUnderControl-0.6.0
or if you already have a previous version simply upgrade:
proofek@home:~$ [...]]]></description>
			<content:encoded><![CDATA[<p>I am pleased to announce that new version of <a title="phpUnderControl 0.6.0" href="http://github.com/phpundercontrol/phpUnderControl/tarball/0.6.0" target="_blank">phpUnderControl</a> is out.</p>
<p>You can install it through its pear channel:</p>
<pre>proofek@home:~$ sudo pear channel-discover pear.phpundercontrol.org
Adding Channel "pear.phpundercontrol.org" succeeded
Discovery of channel "pear.phpundercontrol.org" succeeded
proofek@home:~$ sudo pear install --alldeps phpuc/phpUnderControl-0.6.0
downloading phpUnderControl-0.6.0.tgz ...
Starting to download phpUnderControl-0.6.0.tgz (545,857 bytes)
.............................................................................................................done: 545,857 bytes
install ok: channel://pear.phpundercontrol.org/phpUnderControl-0.6.0</pre>
<p>or if you already have a previous version simply upgrade:</p>
<pre>proofek@home:~$ sudo pear upgrade --alldeps phpuc/phpUnderControl-0.6.0
downloading phpUnderControl-0.6.0.tgz ...
Starting to download phpUnderControl-0.6.0.tgz (545,857 bytes)
.............................................................................................................done: 545,857 bytes
upgrade ok: channel://pear.phpundercontrol.org/phpUnderControl-0.6.0</pre>
<p>Release 0.6.0 brings a few new features as well as a few bug fixes.</p>
<p><strong>New Copy/Paste Detector and Changeset tab</strong></p>
<p>Big thanks to <a title="hpbuniat on github" href="http://github.com/hpbuniat" target="_blank">hpbuniat</a> for this contribution.<br />
Changeset tab contains details of modifications in the source code since the last successful build. <em>Copy/Paste Detector</em> tab contains report produced by <a title="Copy/Paste Detector (CPD) for PHP" href="http://github.com/sebastianbergmann/phpcpd" target="_blank">Copy/Paste Detector (CPD) for PHP</a>.</p>
<div>
<div id="attachment_91" class="wp-caption aligncenter" style="width: 310px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/08/phpcpd.jpg" target="_blank"><img class="size-medium wp-image-91  " title="PHP-CPD tab" src="http://criticallog.thornet.net/wp-content/uploads/2010/08/phpcpd-300x190.jpg" alt="Copy/Paste Detector (CPD) for PHP" width="300" height="190" /></a><p class="wp-caption-text">PHP-CPD tab</p></div>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 310px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/08/changeset.jpg" target="_blank"><img class="size-medium wp-image-88  " title="Changeset tab" src="http://criticallog.thornet.net/wp-content/uploads/2010/08/changeset-300x124.jpg" alt="Changeset" width="300" height="124" /></a><p class="wp-caption-text">Changeset tab</p></div>
</div>
<p>Integrating CPD with <a title="phpUnderControl" href="http://phpundercontrol.org/" target="_blank">phpUnderControl</a> is dead easy. Just install the tool and define another target in your build file. See an example below.</p>
<pre>proofek@home:~$ sudo pear channel-discover pear.phpunit.de
proofek@home:~$ sudo pear channel-discover components.ez.no
proofek@home:~$ sudo pear install phpunit/phpcpd
proofek@home:~$ phpcd --version
phpcpd 1.3.1 by Sebastian Bergmann.</pre>
<pre>&lt;target name="phpcpd" &gt;
    &lt;exec executable="phpcpd" failonerror="false"&gt;
        &lt;arg line="--log-pmd ${basedir}/build/logs/pmd-cpd.xml ${basedir}/source/src" /&gt;
    &lt;/exec&gt;
&lt;/target&gt;</pre>
<p>With these new features there are also two additional graphs on the metrics tab: <em>Build at Revision Timeline</em> and <em>Duplicated Code</em></p>
<div>
<div id="attachment_90" class="wp-caption aligncenter" style="width: 310px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/08/graphs.jpg" target="_blank"><img class="size-medium wp-image-90 " title="Metrics tab" src="http://criticallog.thornet.net/wp-content/uploads/2010/08/graphs-300x203.jpg" alt="phpUnderControl metrics charts" width="300" height="203" /></a><p class="wp-caption-text">Metrics tab</p></div>
</div>
<p><strong>More details in PHP-MD and Codesniffer tabs</strong></p>
<p><a title="PHPMD - PHP Mess Detector" href="http://phpmd.org/" target="_blank">PHP Mess Detector</a> and <a title="PHP_CodeSniffer" href="http://pear.php.net/package/PHP_CodeSniffer/" target="_blank">Codesniffer</a> tabs got refreshed a little bit and now contain a bit more details.</p>
<div>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 310px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/08/phpmd.jpg" target="_blank"><img class="size-medium wp-image-92  " title="PHPMD tab" src="http://criticallog.thornet.net/wp-content/uploads/2010/08/phpmd-300x128.jpg" alt="PHPMD - PHP Mess Detector" width="300" height="128" /></a><p class="wp-caption-text">PHPMD tab</p></div>
<div id="attachment_89" class="wp-caption aligncenter" style="width: 310px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/08/codesniffer.jpg" target="_blank"><img class="size-medium wp-image-89  " title="Codesniffer tab" src="http://criticallog.thornet.net/wp-content/uploads/2010/08/codesniffer-300x201.jpg" alt="PHP_Codesniffer" width="300" height="201" /></a><p class="wp-caption-text">Codesniffer tab</p></div>
</div>
<p><strong>Implemented #665: Display limit for build metrics.</strong></p>
<p>As per <a title="phpUnderControl 0.6.0beta2 released" href="http://manuel-pichler.de/archives/92-phpUnderControl-0.6.0beta2-released.html" target="_blank">Manuel post</a> earlier on, now it is also possible to control maximum number of log entries displayed on the graphs. Simply modify your config file that generates graphs and add <em>&#8211;max-number</em> option to it.</p>
<pre>&lt;publishers&gt;
    &lt;artifactspublisher dir="projects/${project.name}/build/api" dest="artifacts/${project.name}" subdirectory="api"/&gt;
    &lt;artifactspublisher dir="projects/${project.name}/build/coverage" dest="artifacts/${project.name}" subdirectory="coverage"/&gt;
    &lt;execute command="phpcb --log projects/${project.name}/build/logs --source projects/${project.name}/source/src --output projects/${project.name}/build/php-code-browser"/&gt;
    &lt;artifactspublisher dir="projects/${project.name}/build/php-code-browser" dest="artifacts/${project.name}" subdirectory="php-code-browser"/&gt;
    &lt;execute command="/usr/bin/phpuc graph <span style="color: #339966;"><strong>--max-number 10</strong></span> logs/${project.name} artifacts/${project.name}"/&gt;
&lt;/publishers&gt;</pre>
<p><strong>Bug fixes</strong></p>
<ul>
<li><em>Fixed #771</em>:  Invalid character in CodeSniffer output.</li>
<li><em>Fixed #732</em>: Show revision of SVN/CVS on dashboard. Patch supplied by hpbuniat, through phpunit&#8217;s issue tracker.</li>
<li><em>Fixed #1003</em>: Force build button in the /cruisecontrol app doesn&#8217;t work.</li>
<li><em>Fixed #1011</em>: Custom ant script now set properly when requested</li>
<li><em>Fixed #1044</em>: callServer should return false. Patch supplied by Mekras in phpunit&#8217;s issue tracker.</li>
</ul>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D87&amp;title=phpUnderControl+0.6.0+released" title="Bookmark this post : phpUnderControl 0.6.0 released on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D87&amp;title=phpUnderControl+0.6.0+released&amp;bodytext=I+am+pleased+to+announce+that+new+version+of+phpUnderControl+is+out.%0D%0A%0D%0AYou+can+install+it+through+its+pear+channel%3A%0D%0Aproofek%40home%3A%7E%24+sudo+pear+channel-discover+pear.phpundercontrol.org%0D%0AAdding+Channel+%22pear.phpundercontrol.org%22+succeeded%0D%0ADiscovery+of+channel+%22pear.phpundercontrol.org%22+succeeded%0D%0Aproofek%40home%3A%7E%24+sudo+" title="Digg this post : phpUnderControl 0.6.0 released"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D87&amp;t=phpUnderControl+0.6.0+released" title="Recommend this post : phpUnderControl 0.6.0 released on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D87&amp;title=phpUnderControl+0.6.0+released" title="Buzz up this post : phpUnderControl 0.6.0 released "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=phpUnderControl+0.6.0+released+-+http%3A%2F%2Fbit.ly%2FdvfcM3" title="Tweet this post : phpUnderControl 0.6.0 released on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=87</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Joining phpUnderControl development team</title>
		<link>http://criticallog.thornet.net/?p=81</link>
		<comments>http://criticallog.thornet.net/?p=81#comments</comments>
		<pubDate>Fri, 06 Aug 2010 23:53:11 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pro]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[phpUnderControl]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=81</guid>
		<description><![CDATA[I have been using phpUnderControl for over 2 years now. In fact I still remember the first time I set it up at work. Big times. Now we&#8217;ve got nearly hundred (if not over hundred) modules set up which build regularly on a daily basis. To improve the overall experience I&#8217;ve enhanced some things and submitted it back to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using <a title="phpUnderControl" href="http://www.phpundercontrol.org/">phpUnderControl</a> for over 2 years now. In fact I still remember the first time I set it up at work. Big times. Now we&#8217;ve got nearly hundred (if not over hundred) modules set up which build regularly on a daily basis. To improve the overall experience I&#8217;ve enhanced some things and submitted it back to the project, but only when project was migrated from SVN to git it really became easy to contribute.</p>
<p>I have been contributing to <a title="phpUnderControl" href="http://www.phpundercontrol.org/">phpUnderControl</a> quite regularly recently, and when I received a message from <a title="Manuel Pichler" href="http://www.manuel-pichler.de/">Manuel Pichler</a> telling me that I now have write access to project repository and I am part of core development team I couldn&#8217;t hide my excitement. That will only mean I can contribute more and often. Hopefully only with benefits to the project.</p>
<p>For now, I can&#8217;t wait for the next stable release with its all new features. It&#8217;s nearly there! So stay tuned!</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D81&amp;title=Joining+phpUnderControl+development+team" title="Bookmark this post : Joining phpUnderControl development team on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D81&amp;title=Joining+phpUnderControl+development+team&amp;bodytext=I+have+been+using+phpUnderControl+for+over+2+years+now.+In+fact+I+still+remember+the+first+time+I+set+it+up+at+work.+Big+times.+Now+we%27ve+got+nearly+hundred+%28if+not+over+hundred%29+modules+set+up+which+build%C2%A0regularly%C2%A0on+a+daily+basis.+To+improve+the+overall%C2%A0experience%C2%A0I%27ve+enhanced+some+things+and+submitted+it+back+" title="Digg this post : Joining phpUnderControl development team"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D81&amp;t=Joining+phpUnderControl+development+team" title="Recommend this post : Joining phpUnderControl development team on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D81&amp;title=Joining+phpUnderControl+development+team" title="Buzz up this post : Joining phpUnderControl development team "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Joining+phpUnderControl+development+team+-+http%3A%2F%2Fbit.ly%2F9bZdWX" title="Tweet this post : Joining phpUnderControl development team on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=81</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New theme, new look</title>
		<link>http://criticallog.thornet.net/?p=78</link>
		<comments>http://criticallog.thornet.net/?p=78#comments</comments>
		<pubDate>Fri, 06 Aug 2010 20:19:48 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[better]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[new look]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=78</guid>
		<description><![CDATA[You can&#8217;t please me enough. I&#8217;ve changed the look of the site several time, yet I wasn&#8217;t happy so far. So another change. Found this new theme called zBench which seems to work better. I think it now looks more neat and readable. Hope it will work this time.

Bookmark on Delicious
Digg this post
Recommend on Facebook
Buzz [...]]]></description>
			<content:encoded><![CDATA[<p>You can&#8217;t please me enough. I&#8217;ve changed the look of the site several time, yet I wasn&#8217;t happy so far. So another change. Found this new theme called zBench which seems to work better. I think it now looks more neat and readable. Hope it will work this time.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D78&amp;title=New+theme%2C+new+look" title="Bookmark this post : New theme, new look on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D78&amp;title=New+theme%2C+new+look&amp;bodytext=You+can%27t+please+me+enough.+I%27ve+changed+the+look+of+the+site+several+time%2C+yet+I+wasn%27t+happy+so+far.+So+another+change.+Found+this+new+theme+called+zBench+which+seems+to+work+better.+I+think+it+now+looks+more+neat+and+readable.+Hope+it+will+work+this+time." title="Digg this post : New theme, new look"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D78&amp;t=New+theme%2C+new+look" title="Recommend this post : New theme, new look on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D78&amp;title=New+theme%2C+new+look" title="Buzz up this post : New theme, new look "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=New+theme%2C+new+look+-+http%3A%2F%2Fbit.ly%2FchR9ui" title="Tweet this post : New theme, new look on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=78</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git completion on MacOsX</title>
		<link>http://criticallog.thornet.net/?p=72</link>
		<comments>http://criticallog.thornet.net/?p=72#comments</comments>
		<pubDate>Tue, 11 May 2010 20:50:40 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[Pro]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bash colours]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git completion]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[vcs]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=72</guid>
		<description><![CDATA[For most of the day I work on a linux machine and I quite got used to having git completion feature for free. But as an occasional MacOsX user I felt quite bad not having the same functionality available. So yesterday I spent a couple of hours googling and playing until I finally got it [...]]]></description>
			<content:encoded><![CDATA[<p>For most of the day I work on a linux machine and I quite got used to having git completion feature for free. But as an occasional MacOsX user I felt quite bad not having the same functionality available. So yesterday I spent a couple of hours googling and playing until I finally got it all working on my MacBook.</p>
<p>Here&#8217;s a quick guide.</p>
<p>First of all, you need git-completion script. You can either get it from <a title="git-scm.com" href="http://git-scm.com/download">git source archive</a></p>
<pre>#&gt; curl http://kernel.org/pub/software/scm/git/git-1.7.1.tar.gz -O
#&gt; tar -xzvf git-1.7.1.tar.gz
#&gt; cp git-1.7.1/contrib/completion/git-completion.bash ~/git-completion.bash</pre>
<p>or download it directly from <a title="git at github.com" href="http://github.com/git/git">github</a></p>
<pre>#&gt; curl http://github.com/git/git/raw/master/contrib/completion/git-completion.bash -O
#&gt; cp git-completion.bash ~/git-completion.bash</pre>
<p>Next, modify your <em>~/.bash_profile</em> file by adding the following line to it:</p>
<pre>source ~/git-completion.bash</pre>
<p>Now restart you terminal and start using TAB key to autocomplete git commands!</p>
<p>But I didn&#8217;t stop there. When I enter a directory with a git repository I like to know which branch it is currently on. To achieve that all you need to do is to modify PS1 environment variable. Add the following line to  your <em>~/.bash_profile</em> file:</p>
<pre>PS1='\u@\h:\W $(__git_ps1 "(%s)")\$ '</pre>
<p>Now restart you terminal and cd into a git repository.</p>
<pre>sebmarek@proofek:~ $ cd ~/git/phpUnderControl
sebmarek@proofek:phpUnderControl (master)$</pre>
<p>To make it even more visible I use bash colouring feature to highlight branch name in a colour of my choice. See <a title="Bash Prompt HOWTO" href="http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html">bash prompt HOWTO</a> for more details. That&#8217;s how my PS1 environment variable looks like:</p>
<pre>PS1='\u@\h:\W \[\033[32m\]$(__git_ps1 "(%s)")\[\033[0m\]\$ '</pre>
<p>and that&#8217;s the result:</p>
<pre>sebmarek@proofek:~ $ cd ~/git/phpUnderControl
sebmarek@proofek:phpUnderControl <span style="color: #00ff00;"><strong>(master)</strong></span>$</pre>
<p>Happy giting!</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D72&amp;title=git+completion+on+MacOsX" title="Bookmark this post : git completion on MacOsX on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D72&amp;title=git+completion+on+MacOsX&amp;bodytext=For+most+of+the+day+I+work+on+a+linux+machine+and+I+quite+got+used+to+having+git+completion+feature+for+free.+But+as+an+occasional+MacOsX+user+I+felt+quite+bad+not+having+the+same+functionality+available.+So+yesterday+I+spent+a+couple+of+hours+googling+and+playing+until+I+finally+got+it+all+working+on+my+MacBook.%0D%0A%0D%0AHe" title="Digg this post : git completion on MacOsX"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D72&amp;t=git+completion+on+MacOsX" title="Recommend this post : git completion on MacOsX on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D72&amp;title=git+completion+on+MacOsX" title="Buzz up this post : git completion on MacOsX "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=git+completion+on+MacOsX+-+http%3A%2F%2Fbit.ly%2Fd2VUvw" title="Tweet this post : git completion on MacOsX on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=72</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Appearances can be deceptive</title>
		<link>http://criticallog.thornet.net/?p=65</link>
		<comments>http://criticallog.thornet.net/?p=65#comments</comments>
		<pubDate>Thu, 25 Mar 2010 22:16:49 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Coen brothers]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[laughs]]></category>
		<category><![CDATA[lesson]]></category>
		<category><![CDATA[movie]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=65</guid>
		<description><![CDATA[A couple of days ago I rented &#8220;Burn After Reading&#8221; movie. I have no idea how it ended up on my rental list, but I can tell you now, this is the most wicked, crazy film I have ever seen! When it finished, the only words that came out of my mouth were: WTF?! So [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago I rented &#8220;Burn After Reading&#8221; movie. I have no idea how it ended up on my rental list, but I can tell you now, this is the most wicked, crazy film I have ever seen! When it finished, the only words that came out of my mouth were: WTF?! So I watched it again, and I couldn&#8217;t  resist, but to make some notes. So here they are:</p>
<p>A lawyer speaking to Ozzie&#8217;s wife:</p>
<pre>Do this before the turtle can draw in his head and his feet.</pre>
<p>Harry&#8217;s (George Clooney) best moments:</p>
<pre>- "I should try to get a run in."
- "20 years of service, never discharged it."</pre>
<p>Harry, after catching a law firm detective:</p>
<pre>- "Who do you work for? CIA NSA."
- "Tuchman Marsh"
- "Is that a law firm?"
- "No, a rock band!"</pre>
<p>Chad (Brad Pitt) after finding the CD:</p>
<pre>"This is some heavy shit. This is some intelligence shit. And signals and shit… and dates and number… and dates… and numbers… and shit! I think that's the shit man! Signals intelligence shit."</pre>
<p>Chad calling Ozzie:</p>
<pre>- "I am a Good Samaritan, a traveller on the road."
- "You may be worried about the security of your shit."</pre>
<p>Linda Litzke speaking with the Russians:</p>
<pre>- "The fish has bitten!"
- "Mr. Krapotkin, is this a secure line?"</pre>
<p>And finally the best scene ever!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/NQQdSwFgSec&amp;hl=en_US&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/NQQdSwFgSec&amp;hl=en_US&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>If you haven&#8217;t seen it yet, this is a must see. If you have&#8230; well it&#8217;s time to watch it again!</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D65&amp;title=Appearances+can+be+deceptive" title="Bookmark this post : Appearances can be deceptive on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D65&amp;title=Appearances+can+be+deceptive&amp;bodytext=A+couple+of+days+ago+I+rented+%22Burn+After+Reading%22+movie.+I+have+no+idea+how+it+ended+up+on+my+rental+list%2C+but+I+can+tell+you+now%2C+this+is+the+most+wicked%2C+crazy+film+I+have+ever+seen%21+When+it+finished%2C+the+only+words+that+came+out+of+my+mouth+were%3A+WTF%3F%21+So+I+watched+it+again%2C+and+I+couldn%27t+%C2%A0resist%2C+but+to+make+som" title="Digg this post : Appearances can be deceptive"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D65&amp;t=Appearances+can+be+deceptive" title="Recommend this post : Appearances can be deceptive on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D65&amp;title=Appearances+can+be+deceptive" title="Buzz up this post : Appearances can be deceptive "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Appearances+can+be+deceptive+-+http%3A%2F%2Fbit.ly%2Fb0HFRz" title="Tweet this post : Appearances can be deceptive on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrate PHP_Depend with phpUnderControl</title>
		<link>http://criticallog.thornet.net/?p=49</link>
		<comments>http://criticallog.thornet.net/?p=49#comments</comments>
		<pubDate>Tue, 02 Mar 2010 21:16:52 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pro]]></category>
		<category><![CDATA[buildbox]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[pdepend]]></category>
		<category><![CDATA[phpUnderControl]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[php_depend]]></category>
		<category><![CDATA[software metrics]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=49</guid>
		<description><![CDATA[The newest version of phpUnderControl has now basic support for PHP_Depend. With PHPUnit deprecating support for metrics, it&#8217;s just about the time to switch. And it&#8217;s not as complicated as it might sound.
First of all you need to install PHP_Depend. Using pear it&#8217;s the easiest and quickest way to do it. If you haven&#8217;t registered [...]]]></description>
			<content:encoded><![CDATA[<p>The newest version of <a title="phpUnderControl" href="http://www.phpundercontrol.org/">phpUnderControl</a> has now basic support for <a title="PHP_Depend" href="http://www.pdepend.org/">PHP_Depend</a>. With <a title="PHPUnit" href="http://www.phpunit.de/">PHPUnit</a> deprecating support for metrics, it&#8217;s just about the time to switch. And it&#8217;s not as complicated as it might sound.</p>
<p>First of all you need to install PHP_Depend. Using pear it&#8217;s the easiest and quickest way to do it. If you haven&#8217;t registered PHP_Depend pear channel yet, it is time to do it now:</p>
<pre>141:~ sebmarek$ sudo pear channel-discover pear.pdepend.org
Adding Channel "pear.pdepend.org" succeeded
Discovery of channel "pear.pdepend.org" succeeded</pre>
<p>After that simply use pear to install the latest version of PHP_Depend:</p>
<pre>141:~ sebmarek$ sudo pear install pdepend/PHP_Depend-beta
Did not download optional dependencies: pecl/imagick, use --alldeps to download automatically
pdepend/PHP_Depend can optionally use package "pecl/imagick" (version &gt;= 2.2.0b2)
downloading PHP_Depend-0.9.11.tgz ...
Starting to download PHP_Depend-0.9.11.tgz (323,787 bytes)
..................................................................done: 323,787 bytes
install ok: channel://pear.pdepend.org/PHP_Depend-0.9.11</pre>
<p>and confirm that PHP_Depend installed successfully:</p>
<pre>141:~ sebmarek$ pdepend --version
PHP_Depend 0.9.11 by Manuel Pichler</pre>
<p>The next step is to modify your project&#8217;s build file. If you don&#8217;t use phpunit configuration xml file the change is really simple. Just remove &#8211;log-metrics option from your phpunit ant task:</p>
<pre>&lt;target name="phpunit"&gt;
    &lt;exec dir="/pth/to/your/module" executable="phpunit" failonerror="true"&gt;
        &lt;arg line="--log-junit ${basedir}/build/logs/phpunit.xml
                   <span style="color: #ff0000;">--log-metrics ${basedir}/build/logs/phpunit.metrics.xml</span>
                   --coverage-xml ${basedir}/build/logs/phpunit.coverage.xml
                   --coverage-html ${basedir}/build/coverage" /&gt;
    &lt;/exec&gt;
&lt;/target&gt;</pre>
<p>If you use phpunit xml file remove relevant entry from logging section:</p>
<pre>&lt;logging&gt;
    &lt;log type="coverage-html" target="/path/to/build/coverage/" charset="UTF-8" yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/&gt;
    &lt;log type="coverage-clover" target="/path/to/build/logs/phpunit.coverage.xml"/&gt;
    &lt;log type="junit" target="/path/to/build/logs/phpunit.test.xml" logIncompleteSkipped="true"/&gt;
    <span style="color: #ff0000;">&lt;log type="metrics-xml" target="/path/to/build/logs/metrics.xml"/&gt;</span>
&lt;/logging&gt;</pre>
<p>Finally just add new ant task in the build file that will run <em>pdepend</em> and generate metrics xml file and additional graphs.</p>
<pre><span style="color: #2fcf46;">&lt;target name="php-depend"&gt;
    &lt;exec executable="pdepend" dir="${basedir}/Source" logerror="on"&gt;
        &lt;arg line="--phpunit-xml=${basedir}/build/logs/pdepend.xml
                   --jdepend-chart=${basedir}/build/graph/08-dependencies.svg
                   --overview-pyramid=${basedir}/build/graph/09-software-metrics-pyramid.svg
                   . " /&gt;
    &lt;/exec&gt;
&lt;/target&gt;</span>

&lt;target name="phpunit"&gt;
    &lt;exec dir="${basedir}/Source/Test/" executable="phpunit" failonerror="true" /&gt;
&lt;/target&gt;

&lt;target name="build" depends="clean,checkout-code,php-documentor,php-codesniffer,<span style="color: #2fcf46;">php-depend</span>,phpunit" /&gt;</pre>
<p>Now either wait until next build happens or simply trigger the next build manually and navigate to the metrics tab. All the charts should be still there. In addition two additional charts has been added &#8211; <strong>Package Dependencies</strong> and <strong>visual summary of the analyzed project source code</strong>.</p>
<div id="attachment_59" class="wp-caption aligncenter" style="width: 475px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/03/pdepend_metrics.png"><img class="size-full wp-image-59  " title="pdepend_metrics" src="http://criticallog.thornet.net/wp-content/uploads/2010/03/pdepend_metrics.png" alt="PHP_Depend metrics" width="465" height="148" /></a><p class="wp-caption-text">Additional charts generated with PHP_Depend</p></div>
<p>Package dependencies chart is also shown at the top of phpUnderControl Overview tab.</p>
<p>To learn more about software metric and PHP_Depend itself have a look at Documentation section at <a title="http://www.pdepend.org/" href="http://www.pdepend.org/">http://www.pdepend.org/</a></p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D49&amp;title=Integrate+PHP_Depend+with+phpUnderControl" title="Bookmark this post : Integrate PHP_Depend with phpUnderControl on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D49&amp;title=Integrate+PHP_Depend+with+phpUnderControl&amp;bodytext=The+newest+version+of+phpUnderControl+has+now+basic+support+for+PHP_Depend.+With+PHPUnit+deprecating+support+for+metrics%2C+it%27s+just+about+the+time+to+switch.+And+it%27s+not+as+complicated+as+it+might+sound.%0D%0A%0D%0AFirst+of+all+you+need+to+install+PHP_Depend.+Using+pear+it%27s+the+easiest+and+quickest+way+to+do+it.+If+you+haven" title="Digg this post : Integrate PHP_Depend with phpUnderControl"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D49&amp;t=Integrate+PHP_Depend+with+phpUnderControl" title="Recommend this post : Integrate PHP_Depend with phpUnderControl on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D49&amp;title=Integrate+PHP_Depend+with+phpUnderControl" title="Buzz up this post : Integrate PHP_Depend with phpUnderControl "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Integrate+PHP_Depend+with+phpUnderControl+-+http%3A%2F%2Fbit.ly%2Fdk7f61" title="Tweet this post : Integrate PHP_Depend with phpUnderControl on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=49</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing metrics in phpUnderControl 0.5.0</title>
		<link>http://criticallog.thornet.net/?p=39</link>
		<comments>http://criticallog.thornet.net/?p=39#comments</comments>
		<pubDate>Wed, 13 Jan 2010 22:33:55 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pro]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[buildbox]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[phpUnderControl]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=39</guid>
		<description><![CDATA[I recently upgraded our buildbox to phpUnderControl 0.5.0 being really curious about new CodeBrowser feature. And indeed CodeBrowser addon is really cool (see Manuel Pichler announcement on his site for details), but after the upgrade I found Metrics tab broken. Instead of nice shiny graphs it showed me Java exception like this:
It took me a [...]]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded our buildbox to phpUnderControl 0.5.0 being really curious about new CodeBrowser feature. And indeed CodeBrowser addon is really cool (see Manuel Pichler <a title="phpUnderControl 0.5.0 released" href="http://manuel-pichler.de/archives/69-phpUnderControl-0.5.0-released.html" target="_blank">announcement</a> on his site for details), but after the upgrade I found Metrics tab broken. Instead of nice shiny graphs it showed me Java exception like this:</p>
<div id="attachment_44" class="wp-caption aligncenter" style="width: 310px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/01/metrics_exception1.jpg"><img class="size-medium wp-image-44 " title="metrics_exception" src="http://criticallog.thornet.net/wp-content/uploads/2010/01/metrics_exception1-300x190.jpg" alt="Metrics exception" width="300" height="190" /></a><p class="wp-caption-text">Metrics exception</p></div>
<p>It took me a while to figure out what caused this strange behaviour. I have found the answer when I have run graph generation manually:</p>
<pre style="padding-left: 30px;">#&gt; phpuc graph logs/PHPUnit-3.5/ artifacts/PHPUnit-3.5/</pre>
<p>It returned pretty instantly the following error:</p>
<pre style="padding-left: 30px;">The value '1' that you were trying to assign to setting 'labelCount' is invalid. Allowed values are: int &gt; 1.</pre>
<p>A little bit of googling and I actually found the answer, again on Manuel Pichler site, in the comments for the announcement.</p>
<p>Basically with phpUnderControl 0.5.0 a file has been released called <em>ClassComplexityInput.php</em>. It is not ready yet to generate a graphs (I suspect it&#8217;s gonna be a graph representing class complexity), but phpUnderControl goes through all available input processors to generate graphs for the metrics page.</p>
<p>Fix in that case is pretty trivial, just remove the file (it&#8217;s in <em>phpUnderControl/Graph/Input/</em> directory) and voila &#8211; your graphs are back!</p>
<div id="attachment_45" class="wp-caption aligncenter" style="width: 490px"><a href="http://criticallog.thornet.net/wp-content/uploads/2010/01/metrics_fixed.jpg"><img class="size-full wp-image-45" title="metrics_fixed" src="http://criticallog.thornet.net/wp-content/uploads/2010/01/metrics_fixed.jpg" alt="Metrics fixed" width="480" height="338" /></a><p class="wp-caption-text">Metrics fixed</p></div>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D39&amp;title=Fixing+metrics+in+phpUnderControl+0.5.0" title="Bookmark this post : Fixing metrics in phpUnderControl 0.5.0 on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D39&amp;title=Fixing+metrics+in+phpUnderControl+0.5.0&amp;bodytext=I+recently+upgraded+our+buildbox+to+phpUnderControl+0.5.0+being+really+curious+about+new+CodeBrowser+feature.+And+indeed+CodeBrowser+addon+is+really+cool+%28see+Manuel+Pichler+announcement+on+his+site+for+details%29%2C+but+after+the+upgrade+I+found+Metrics+tab+broken.+Instead+of+nice+shiny+graphs+it+showed+me+Java+exception+" title="Digg this post : Fixing metrics in phpUnderControl 0.5.0"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D39&amp;t=Fixing+metrics+in+phpUnderControl+0.5.0" title="Recommend this post : Fixing metrics in phpUnderControl 0.5.0 on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D39&amp;title=Fixing+metrics+in+phpUnderControl+0.5.0" title="Buzz up this post : Fixing metrics in phpUnderControl 0.5.0 "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Fixing+metrics+in+phpUnderControl+0.5.0+-+http%3A%2F%2Fbit.ly%2FaWUKmC" title="Tweet this post : Fixing metrics in phpUnderControl 0.5.0 on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=39</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sharing your git repository</title>
		<link>http://criticallog.thornet.net/?p=28</link>
		<comments>http://criticallog.thornet.net/?p=28#comments</comments>
		<pubDate>Thu, 07 Jan 2010 23:43:14 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[Pro]]></category>
		<category><![CDATA[access control]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git config]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=28</guid>
		<description><![CDATA[&#8230; or maybe not.
We&#8217;ve had this problem for some time and couldn&#8217;t really find a good solution for that. We wanted to have some repositories to be only writeable for selected users and even some repositories to be accessible for some users and completely invisible for the others.
First requirement seemed to be pretty simple as [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; or maybe not.</p>
<p>We&#8217;ve had this problem for some time and couldn&#8217;t really find a good solution for that. We wanted to have some repositories to be only writeable for selected users and even some repositories to be accessible for some users and completely invisible for the others.</p>
<p>First requirement seemed to be pretty simple as git access control is based on file permissions. So creating a repository only writeable for a selected group seemed to work&#8230; until somebody hasn&#8217;t committed a change which created a new object in .git directory which wasn&#8217;t group writable! The next person trying to change this object after was getting permission denied error like that:</p>
<pre style="padding-left: 30px;"><span style="color: #808080;">#&gt; git push origin master</span></pre>
<pre style="padding-left: 30px;"><span style="color: #808080;">Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 286 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)</span></pre>
<pre style="padding-left: 30px;"><span style="color: #808080;">fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To smarek@mygitserver.com:/home/smarek/git/myRepo.git
 ! [remote rejected] master -&gt; master (n/a (unpacker error))
error: failed to push some refs to 'smarek@mygitserver.com:/home/smarek/git/myRepo.git'</span></pre>
<p>Obviously git atomic commits did its trick and didn&#8217;t break the repository, but at the same time this issue prevented us pushing the changes to remote repository! We had tried different git hooks, but it didn&#8217;t work the way we wanted. So basically we ended up with a script that must have been run manually on git server when the issue was encountered.</p>
<pre style="padding-left: 30px;"><span style="color: #808080;">#!/bin/bash</span></pre>
<pre style="padding-left: 30px;"><span style="color: #808080;">if [ $# -lt 1 ]; then
    echo "Usage: $0 &lt;repo&gt;"
    exit 1
fi</span></pre>
<pre style="padding-left: 30px;"><span style="color: #808080;">chown -R owner:group /path/to/repo/$1.git/objects
chmod -R g+w /path/to/repo/$1.git/objects</span></pre>
<p><span style="color: #000000; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">Until now. Friend of mine (thanks rodrigez) actually discovered a native git feature, that allows you to control access to a repository &#8211; <em>core.sharedRepository</em>. It accepts the following values:</span><br />
</span></pre>
<ul>
<li>umask (or false) - the default value. Git uses permissions reported by umask</li>
<li>group (or true) - makes the repository group-writable</li>
<li>all (or world or everybody) - same as group, but make the repository readable by all users</li>
<li>0xxx: 0xxx is an octal number and each file will have mode 0xxx. 0xxx will override users umask value. 0640 will create a repository which is group-readable but not writable. 0660 is equivalent to group.</li>
</ul>
<p>You can set that using either <em>git config</em> command if your repository already exists, or you want to make the default value either global or system wide:</p>
<pre style="padding-left: 30px;"><span style="color: #808080;">#&gt; git config core.sharedRepository group</span></pre>
<p>or during brand new repository creation:</p>
<pre style="padding-left: 30px;"><span style="color: #808080;">#&gt; git init --shared=group</span></pre>
<p>So for me setting <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">core.sharedRepository</span> to <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">group<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"> solves my first issues, while removing all access to other users to all files in the repository and setting <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">core.sharedRepository</span> to <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">0770</span> will restrict access to the repository to only limited number of people.</span></span></p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D28&amp;title=Sharing+your+git+repository" title="Bookmark this post : Sharing your git repository on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D28&amp;title=Sharing+your+git+repository&amp;bodytext=...+or+maybe+not.%0D%0A%0D%0AWe%27ve+had+this+problem+for+some+time+and+couldn%27t+really+find+a+good+solution+for+that.+We+wanted+to+have+some+repositories+to+be+only+writeable+for+selected+users+and+even+some+repositories+to+be+accessible+for+some+users+and+completely+invisible+for+the+others.%0D%0A%0D%0AFirst+requirement+seemed+to+be+p" title="Digg this post : Sharing your git repository"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D28&amp;t=Sharing+your+git+repository" title="Recommend this post : Sharing your git repository on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D28&amp;title=Sharing+your+git+repository" title="Buzz up this post : Sharing your git repository "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Sharing+your+git+repository+-+http%3A%2F%2Fbit.ly%2F9R5eCy" title="Tweet this post : Sharing your git repository on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Git Up and Get Going</title>
		<link>http://criticallog.thornet.net/?p=24</link>
		<comments>http://criticallog.thornet.net/?p=24#comments</comments>
		<pubDate>Tue, 05 Jan 2010 23:17:35 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[Pro]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[vcs]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=24</guid>
		<description><![CDATA[I have used git for the first time about a year ago. We&#8217;ve been talking about abandoning CVS for quite a while and Subversion seemed to be the best choice at the time. Yes we&#8217;ve looked at different version control systems, we tried sample migrations and still we couldn&#8217;t make a decision. And CVS&#8230; it [...]]]></description>
			<content:encoded><![CDATA[<p>I have used git for the first time about a year ago. We&#8217;ve been talking about abandoning CVS for quite a while and Subversion seemed to be the best choice at the time. Yes we&#8217;ve looked at different version control systems, we tried sample migrations and still we couldn&#8217;t make a decision. And CVS&#8230; it was a constant battle, continuos corruptions, old hardware, hours long merges, but  it worked, so the general response was &#8211; why to change something that works.</p>
<p>We needed a strong kick in our butt and fortunately there was a man that was brave enough to kick until it hurt (thanks Rys!). With management convinced we only needed to plan the migration, schedule the training and just start using it.</p>
<p>That was about a year ago. Now, we use it on a daily basis, and I can&#8217;t imagine how we could live without it before. Yes, it&#8217;s not as mature as Subversion, Windows tool are poor and far from ideal, but it definitely speeded up our development process. I remember all this scepticism at the time and I only bring it up now because in the past few weeks I have actually seen more and more developers and projects switching to git. I was really glad to see <a title="phpUnit" href="http://www.phpunit.de/" target="_blank">PHPUnit</a> and <a title="phpUnderControl" href="http://phpundercontrol.org/" target="_blank">phpUnderControl</a> moving over to <a title="github" href="http://github.com/" target="_self">github</a>. It makes contribution to these projects so much easier.</p>
<p>I think git is the future of the open source software and it makes its development so much easier and faster. So if you haven&#8217;t used it yet or you&#8217;re just simply afraid of it, please put your fears aside and git up and going!</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D24&amp;title=Git+Up+and+Get+Going" title="Bookmark this post : Git Up and Get Going on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D24&amp;title=Git+Up+and+Get+Going&amp;bodytext=I+have+used+git+for+the+first+time+about+a+year+ago.+We%27ve+been+talking+about+abandoning+CVS+for+quite+a+while+and+Subversion+seemed+to+be+the+best+choice+at+the+time.+Yes+we%27ve+looked+at+different+version+control+systems%2C+we+tried+sample+migrations+and+still+we+couldn%27t+make+a+decision.+And+CVS...+it+was+a+constant+ba" title="Digg this post : Git Up and Get Going"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D24&amp;t=Git+Up+and+Get+Going" title="Recommend this post : Git Up and Get Going on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D24&amp;title=Git+Up+and+Get+Going" title="Buzz up this post : Git Up and Get Going "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Git+Up+and+Get+Going+-+http%3A%2F%2Fbit.ly%2FbMR1RT" title="Tweet this post : Git Up and Get Going on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wind of changes</title>
		<link>http://criticallog.thornet.net/?p=21</link>
		<comments>http://criticallog.thornet.net/?p=21#comments</comments>
		<pubDate>Fri, 11 Dec 2009 21:41:41 +0000</pubDate>
		<dc:creator>proofek</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[changes]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[order]]></category>
		<category><![CDATA[plans]]></category>

		<guid isPermaLink="false">http://criticallog.thornet.net/?p=21</guid>
		<description><![CDATA[I definitely have to plan my actions more carefully. Trying to do too many things at the same doesn&#8217;t seem to work. I need a plan. Like 10 years plan. Hmm, maybe not 10 years, communists tried that once (or two) and it didn&#8217;t work for them very well. So maybe next year plan? In [...]]]></description>
			<content:encoded><![CDATA[<p>I definitely have to plan my actions more carefully. Trying to do too many things at the same doesn&#8217;t seem to work. I need a plan. Like 10 years plan. Hmm, maybe not 10 years, communists tried that once (or two) and it didn&#8217;t work for them very well. So maybe next year plan? In fact, new year comes, so it&#8217;s a quite good opportunity to sort things out. My Missus is out, kids in beds, nice and quite. Let&#8217;s think then what I could do next year.</p>
<p><strong>1. Focus</strong></p>
<p>I have to focus on one thing, get it done and move on. There is a few things a need to improve and some priorities needs to be assigned.</p>
<p><strong>2. Separation</strong></p>
<p>My professional life needs separating from the personal one. And it&#8217;s clear here &#8211; <strong>The Family</strong> takes priority. The rest comes after.</p>
<p><strong>3. Arrangement</strong></p>
<ul>
<li>Make small steps &#8211; but regularly.</li>
<li>Make notes &#8211; often.</li>
<li>Speak to people &#8211; always.</li>
<li>Constantly improve &#8211; learn your lesson.</li>
</ul>
<p>Quite generic, but sums things up.</p>
<p>Ready&#8230; steady&#8230; go!</p>
<p>I have refreshed the blog then. Found new theme, more toned! I started to use it wrong, these few random post fits more for a wiki then a blog. Will stop that.</p>
<p>Next, finish what you have started. I will focus on the current task and get it finished by end of next week. This deadline sounds reasonable. Next update &#8211; Monday evening then. Remember! Small steps, but regularly.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D21&amp;title=Wind+of+changes" title="Bookmark this post : Wind of changes on Delicious"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D21&amp;title=Wind+of+changes&amp;bodytext=I+definitely+have+to+plan+my+actions+more+carefully.+Trying+to+do+too+many+things+at+the+same+doesn%27t+seem+to+work.+I+need+a+plan.+Like+10+years+plan.+Hmm%2C+maybe+not+10+years%2C+communists+tried+that+once+%28or+two%29+and+it+didn%27t+work+for+them+very+well.+So+maybe+next+year+plan%3F+In+fact%2C+new+year+comes%2C+so+it%27s+a+quite+goo" title="Digg this post : Wind of changes"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D21&amp;t=Wind+of+changes" title="Recommend this post : Wind of changes on Facebook"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="google_buzz" href="http://www.google.com/reader/link?url=http%3A%2F%2Fcriticallog.thornet.net%2F%3Fp%3D21&amp;title=Wind+of+changes" title="Buzz up this post : Wind of changes "><span class="head">Buzz it up</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=Wind+of+changes+-+http%3A%2F%2Fbit.ly%2FbjxMEw" title="Tweet this post : Wind of changes on Twitter"><span class="head">Tweet about it</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://criticallog.thornet.net/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
