<?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>MRo Blog &#187; git</title>
	<atom:link href="http://blog.mro.name/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mro.name</link>
	<description>Marcus Rohrmoser mobile Software</description>
	<lastBuildDate>Wed, 23 Jun 2010 11:32:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Binary Search NSArray</title>
		<link>http://blog.mro.name/2010/01/binary-search-nsarray/</link>
		<comments>http://blog.mro.name/2010/01/binary-search-nsarray/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 22:02:07 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Binary]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[gist]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NSArray]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1652</guid>
		<description><![CDATA[Though CFArray comes with binary search capability, NSArray does not &#8211; at least not within the iPhone SDK. The indexOfObject:inSortedRange:options:usingComparator: can&#8217;t be found. Plus the CFArrayBSearchValues doesn&#8217;t tell you whether the key actually is part of the list or not. That&#8217;s what the Java JDK does, so let&#8217;s implement some category methods -&#40;NSInteger&#41;binarySearch:&#40;id&#41;key; -&#40;NSInteger&#41;binarySearch:&#40;id&#41;key usingSelector:&#40;SEL&#41;comparator; [...]]]></description>
			<content:encoded><![CDATA[<p>Though <a href="http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Reference/CFArrayRef/index.html">CFArray</a> comes with <a href="http://en.wikipedia.org/wiki/Binary_search_algorithm#Iterative">binary search</a> capability, <a href="http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html">NSArray</a> does not &#8211; at least not within the iPhone SDK. The <a href="http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/indexOfObject:inSortedRange:options:usingComparator:">indexOfObject:inSortedRange:options:usingComparator:</a> can&#8217;t be found.</p>
<p>Plus the <a href="http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Reference/CFArrayRef/Reference/reference.html#//apple_ref/doc/uid/20001192-CH201-F10956">CFArrayBSearchValues</a> doesn&#8217;t tell you whether the key actually is part of the list or not. That&#8217;s what the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html#binarySearch(T[],%20T,%20java.util.Comparator)">Java JDK</a> does, so let&#8217;s implement some <a href="http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/Category.html">category</a> methods</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingSelector<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">SEL</span><span style="color: #002200;">&#41;</span>comparator;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingSelector<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">SEL</span><span style="color: #002200;">&#41;</span>comparator inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingFunction<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>NSInteger <span style="color: #002200;">&#40;</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span>, <span style="color: #a61390;">id</span>, <span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>comparator context<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>context;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingFunction<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>NSInteger <span style="color: #002200;">&#40;</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span>, <span style="color: #a61390;">id</span>, <span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>comparator context<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>context inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingDescriptors<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>sortDescriptors;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingDescriptors<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>sortDescriptors inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range;</pre></div></div>

<p>ourselves, like</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingFunction<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>NSInteger <span style="color: #002200;">&#40;</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span>, <span style="color: #a61390;">id</span>, <span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>comparator context<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>context inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range
<span style="color: #002200;">&#123;</span>
    NSLogD<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;[NSArray(MroBinarySearch) binarySearch:%@ usingFunction:]&quot;</span>, key<span style="color: #002200;">&#41;</span>;
    <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>self.count <span style="color: #002200;">==</span> <span style="color: #2400d9;">0</span> || key <span style="color: #002200;">==</span> <span style="color: #a61390;">nil</span> || comparator <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span>
        <span style="color: #a61390;">return</span> <span style="color: #002200;">&#91;</span>self binarySearch<span style="color: #002200;">:</span>key usingSelector<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span> inRange<span style="color: #002200;">:</span>range<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">//	check overflow?</span>
    NSInteger min <span style="color: #002200;">=</span> range.location;
    NSInteger max <span style="color: #002200;">=</span> range.location <span style="color: #002200;">+</span> range.length <span style="color: #002200;">-</span> <span style="color: #2400d9;">1</span>;
&nbsp;
    <span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span>min <span style="color: #002200;">&amp;</span>lt; <span style="color: #002200;">=</span> max<span style="color: #002200;">&#41;</span>
    <span style="color: #002200;">&#123;</span>
        <span style="color: #11740a; font-style: italic;">// http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html</span>
        <span style="color: #a61390;">const</span> NSInteger mid <span style="color: #002200;">=</span> min <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span>max <span style="color: #002200;">-</span> min<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">2</span>;
        <span style="color: #a61390;">switch</span> <span style="color: #002200;">&#40;</span>comparator<span style="color: #002200;">&#40;</span>key, <span style="color: #002200;">&#91;</span>self objectAtIndex<span style="color: #002200;">:</span>mid<span style="color: #002200;">&#93;</span>, context<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>
        <span style="color: #002200;">&#123;</span>
            <span style="color: #a61390;">case</span> NSOrderedSame<span style="color: #002200;">:</span>
                <span style="color: #a61390;">return</span> mid;
            <span style="color: #a61390;">case</span> NSOrderedDescending<span style="color: #002200;">:</span>
                min <span style="color: #002200;">=</span> mid <span style="color: #002200;">+</span> <span style="color: #2400d9;">1</span>;
                <span style="color: #a61390;">break</span>;
            <span style="color: #a61390;">case</span> NSOrderedAscending<span style="color: #002200;">:</span>
                max <span style="color: #002200;">=</span> mid <span style="color: #002200;">-</span> <span style="color: #2400d9;">1</span>;
                <span style="color: #a61390;">break</span>;
        <span style="color: #002200;">&#125;</span>
    <span style="color: #002200;">&#125;</span>
    <span style="color: #a61390;">return</span> <span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>min <span style="color: #002200;">+</span> <span style="color: #2400d9;">1</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>See the <a href="http://gist.github.com/275631/">full interface + implementation + testcase without html encoding dirt at github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/01/binary-search-nsarray/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrade to Snow Leopard</title>
		<link>http://blog.mro.name/2009/11/upgrade-to-snow-leopard/</link>
		<comments>http://blog.mro.name/2009/11/upgrade-to-snow-leopard/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 21:58:42 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Graphviz]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[SANE]]></category>
		<category><![CDATA[SenTestingKit]]></category>
		<category><![CDATA[Snow Leopard]]></category>
		<category><![CDATA[Twain]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1391</guid>
		<description><![CDATA[Mac OS X 10.6 Snow Leopard (partition 25G, HFS+ Journaled, Upper/Lower) Mac OS X 10.5 Leopard (partition 25G, HFS+ Journaled, Upper/Lower) partition userspace 100G, HFS+ Journaled, Upper/Lower $ cat /etc/fstab # mount partition &#34;userspace&#34; as /Users UUID=D016E3FD-E322-3006-A8F5-D2348C6A5B7B /Users hfs rw,auto create user &#8220;mig&#8221; TimeMachine restore Users + Settings delete user &#8220;mig&#8221; manually copy user &#8220;Shared&#8221; [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Mac OS X 10.6 Snow Leopard (partition 25G, HFS+ Journaled, Upper/Lower)</li>
<li>Mac OS X 10.5 Leopard (partition 25G, HFS+ Journaled, Upper/Lower)</li>
<li>partition userspace 100G, HFS+ Journaled, Upper/Lower

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>fstab
<span style="color: #666666; font-style: italic;"># mount partition &quot;userspace&quot; as /Users</span>
<span style="color: #007800;">UUID</span>=D016E3FD-E322-<span style="color: #000000;">3006</span>-A8F5-D2348C6A5B7B	<span style="color: #000000; font-weight: bold;">/</span>Users	hfs	rw,auto</pre></div></div>

</li>
<li>create user &#8220;mig&#8221;</li>
<li>TimeMachine restore Users + Settings</li>
<li>delete user &#8220;mig&#8221;</li>
<li>manually copy user &#8220;Shared&#8221;</li>
<li>iPhone SDK 3.1.2 + XCode 3.2.1</li>
<li><a href="http://rentzsch.com/code/mogenerator_v1.5">modgenerator 1.5</a> plus <a href="http://aralbalkan.com/2152">trick</a>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>Developer<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>momc <span style="color: #000000; font-weight: bold;">/</span>Developer<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Xcode<span style="color: #000000; font-weight: bold;">/</span>Plug-ins<span style="color: #000000; font-weight: bold;">/</span>XDCoreDataModel.xdplugin<span style="color: #000000; font-weight: bold;">/</span>Contents<span style="color: #000000; font-weight: bold;">/</span>Resources<span style="color: #000000; font-weight: bold;">/</span>momc</pre></div></div>

</li>
<li><a href="http://code.google.com/p/git-osx-installer/">git 1.6.5.2</a>, manually add to <code>.bash_profile</code>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$PATH</span>:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

</li>
<li><a href="http://www.macports.org/install.php">Macports</a> / http://trac.macports.org/wiki/Migration

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port selfupdate
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> bcpp pwgen <span style="color: #c20cb9; font-weight: bold;">wget</span> lftp fortune optipng graphviz ragel imagemagick
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port clean <span style="color: #660033;">--all</span> installed
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #660033;">-f</span> uninstall inactive</pre></div></div>

</li>
<li><a href="http://www.graphviz.org/Download_macos.php">graphviz-2.25.20091129.0545.pkg</a></li>
<li><a href="http://www.barebones.com/products/TextWrangler/">Textwrangler 3.0 (2538)</a></li>
<li><a href="http://gimp.lisanet.de/Website/Download.html">Gimp 2.6.7</a></li>
<li><a href="http://www.neooffice.org/neojava/de/mirrors.php?file=NeoOffice-3.0-Intel.dmg">NeoOffice 3.0.1</a></li>
<li><a href="http://www.evernote.com/about/intl/de/download/">Evernote 1.5.2 (62233)</a></li>
<li><a href="http://www.truecrypt.org/downloads">TrueCrypt 6.3a</a></li>
<li><a href="http://www.dropbox.com/">Dropbox v0.6.570</a></li>
<li><a href="http://skype.com/">Skype 2.8.0.722</a></li>
<li><a href="http://www.mozilla-europe.org/de/firefox/">Firefox 3.5,5</a></li>
<li><a href="http://www.getmiro.com/">Miro Video Player 2.5.3 (775f9134)</a></li>
<li><a href="http://sourceforge.net/projects/maxima/files/">wxMaxima-0.8.3 &amp; Maxima-5.19.2.dmg</a></li>
<li><a href="http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/">Twain SANE Scanner Support</a></li>
</ol>
<p>Remaining issues:</p>
<ol>
<li>SenTestingKit error highlighting not working.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/11/upgrade-to-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Add a new repo to a gitosis server</title>
		<link>http://blog.mro.name/2009/09/add-a-new-repo-to-a-gitosis-server/</link>
		<comments>http://blog.mro.name/2009/09/add-a-new-repo-to-a-gitosis-server/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 21:21:54 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitosis]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1282</guid>
		<description><![CDATA[Another quick recipe: create a local repo: git init add it to the gitosis conf (git pull, edit gitosis.conf, git commit, git push) git remote add origin git@example.com:repository.git git push --force --all]]></description>
			<content:encoded><![CDATA[<p>Another quick recipe:</p>
<ol>
<li>create a local repo: <code>git init</code></li>
<li>add it to the gitosis conf (<code>git pull</code>, edit gitosis.conf, <code>git commit</code>, <code>git push</code>)</li>
<li><code>git remote add origin git@example.com:repository.git</code></li>
<li><code>git push --force --all</code></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/09/add-a-new-repo-to-a-gitosis-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delta Debugging / git bisect</title>
		<link>http://blog.mro.name/2009/07/delta-debugging-git-bisect/</link>
		<comments>http://blog.mro.name/2009/07/delta-debugging-git-bisect/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 22:02:38 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[bisect]]></category>
		<category><![CDATA[Delta Debugging]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[piccolo2d]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1182</guid>
		<description><![CDATA[Just had the problem &#8211; which of the last 40+ commits broke a certain feature in Piccolo2D rev550. As I used git as a svn proxy before, I remembered having heard of it&#8217;s binary-search delta-debugging feature. So I started my first git bisect session: go back fairly far (git checkout 9377e6a0c6e9bcdff1803f18918e8a1a9282a4ee, Eclipse Refresh, try, fine!), [...]]]></description>
			<content:encoded><![CDATA[<p>Just had the problem &#8211; which of the last 40+ commits broke a certain feature in <a href="http://code.google.com/p/piccolo2d/source/detail?r=550">Piccolo2D rev550</a>. As I used <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git as a svn proxy</a> before, I remembered having heard of it&#8217;s binary-search <a href="http://en.wikipedia.org/wiki/Delta_Debugging">delta-debugging</a> feature.</p>
<p>So I started my first <a href="http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html">git bisect</a> session:</p>
<p><span id="more-1182"></span></p>
<ol>
<li>go back fairly far (<code>git checkout 9377e6a0c6e9bcdff1803f18918e8a1a9282a4ee</code>, Eclipse Refresh, try, fine!),</li>
<li>start bisecting  (doing each step: Eclipse-&gt;Refresh, Eclipse-&gt;Project-&gt;Clean, Try it out):

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#40;</span>master<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect start
<span style="color: #7a0874; font-weight: bold;">&#40;</span>master<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect bad
<span style="color: #7a0874; font-weight: bold;">&#40;</span>master<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect good 9377e6a0c6e9bcdff1803f18918e8a1a9282a4ee
Bisecting: <span style="color: #000000;">47</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">6</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>484ba591db63f6f476511787a5156cdaeb51889c<span style="color: #7a0874; font-weight: bold;">&#93;</span> Fixed Issue <span style="color: #000000;">100</span>; Plastered PInputEvent...
<span style="color: #7a0874; font-weight: bold;">&#40;</span>484ba59...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect good
Bisecting: <span style="color: #000000;">23</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">5</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>fa515a6d0eb5ce23d3e47df5e5b4e81e94fdfa81<span style="color: #7a0874; font-weight: bold;">&#93;</span> Added tests <span style="color: #000000; font-weight: bold;">for</span> PBasicInputEventHandler
<span style="color: #7a0874; font-weight: bold;">&#40;</span>fa515a6...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect good
Bisecting: <span style="color: #000000;">11</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">4</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>6e496e12219346e856c8c519c29fedab3f196e35<span style="color: #7a0874; font-weight: bold;">&#93;</span> Cleaned up PNavigationEventhandler.  R...
<span style="color: #7a0874; font-weight: bold;">&#40;</span>6e496e1...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect bad
Bisecting: <span style="color: #000000;">5</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">3</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>c591c3098e6268cfc90fcb84672d642b0878a4b7<span style="color: #7a0874; font-weight: bold;">&#93;</span> Removed some unnecessary imports from...
<span style="color: #7a0874; font-weight: bold;">&#40;</span>c591c30...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect bad
Bisecting: <span style="color: #000000;">2</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">2</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>f3ca00181f2512b10bf12204395ad99f3d474f00<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #666666; font-style: italic;">#84 added developers.</span>
<span style="color: #7a0874; font-weight: bold;">&#40;</span>f3ca001...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect good
Bisecting: <span style="color: #000000;">1</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">1</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>99e495ec4fc54b0f3a36ffd3b605f8a27bd86cdf<span style="color: #7a0874; font-weight: bold;">&#93;</span> Refactored mousePressed and mouseRelease...
<span style="color: #7a0874; font-weight: bold;">&#40;</span>99e495e...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect bad
Bisecting: <span style="color: #000000;">0</span> revisions left to <span style="color: #7a0874; font-weight: bold;">test</span> after this <span style="color: #7a0874; font-weight: bold;">&#40;</span>roughly <span style="color: #000000;">0</span> steps<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>3f0c21d7cb88e696c23d4058acb708898bb60363<span style="color: #7a0874; font-weight: bold;">&#93;</span> Just updated my contact info <span style="color: #000000; font-weight: bold;">in</span> the Maven...
<span style="color: #7a0874; font-weight: bold;">&#40;</span>3f0c21d...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect good
99e495ec4fc54b0f3a36ffd3b605f8a27bd86cdf is first bad commit
commit 99e495ec4fc54b0f3a36ffd3b605f8a27bd86cdf
Author:
Date:   Mon Jul <span style="color: #000000;">20</span> <span style="color: #000000;">15</span>:02:<span style="color: #000000;">56</span> <span style="color: #000000;">2009</span> +0000
&nbsp;
    Refactored mousePressed and mouseReleased so that code common to each is now <span style="color: #000000; font-weight: bold;">in</span> a hel...
&nbsp;
    git-svn-id: https:<span style="color: #000000; font-weight: bold;">//</span>piccolo2d.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>piccolo2d.java<span style="color: #000000; font-weight: bold;">/</span>trunk<span style="color: #000000; font-weight: bold;">@</span><span style="color: #000000;">524</span> aadc08cf-13...
&nbsp;
:040000 040000 b6c487cfdbe4df04947923af5fd05c45aa2ad38d 4dcd8070206a34a2d4037c3d90409ff1e...
<span style="color: #7a0874; font-weight: bold;">&#40;</span>3f0c21d...<span style="color: #000000; font-weight: bold;">|</span>BISECTING<span style="color: #7a0874; font-weight: bold;">&#41;</span> $ git bisect reset
Previous HEAD position was 3f0c21d... Just updated my contact info <span style="color: #000000; font-weight: bold;">in</span> the Maven Config File.
Switched to branch <span style="color: #ff0000;">'master'</span></pre></div></div>

</li>
<li>done, got the fishy commit! (524)</li>
</ol>
<p>P.S.: I cut the long lines, git spits them out in full, naturally.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/07/delta-debugging-git-bisect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>billiger vServer als git Server</title>
		<link>http://blog.mro.name/2009/06/billiger-vserver-als-git-server/</link>
		<comments>http://blog.mro.name/2009/06/billiger-vserver-als-git-server/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 17:59:19 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitosis]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[vServer]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=903</guid>
		<description><![CDATA[An git finde ich u.a. großartig, daß es so unkompliziert zu hosten ist (auf einem lokalen Filesystem, auf http (readonly), ftp oder webdav Shares, per gitosis (ssh getunnelt), als eigener (readonly) Dienst oder ganz ohne Server via Mail). Ich benutze einen 10 EUR vServer mit relativ wenig RAM als (gitosis) Server. Nun habe ich doch [...]]]></description>
			<content:encoded><![CDATA[<p>An <a href="http://git-scm.com/">git</a> finde ich u.a. großartig, daß es so unkompliziert zu hosten ist (auf einem lokalen Filesystem, auf <a href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html#URLS">http (readonly), ftp oder webdav Shares</a>, per <a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">gitosis (ssh getunnelt)</a>, als <a href="http://www.kernel.org/pub/software/scm/git-core/docs/git-daemon.html">eigener (readonly) Dienst</a> oder ganz <a href="http://book.git-scm.com/5_git_and_email.html">ohne Server via Mail</a>).</p>
<p><span id="more-903"></span><br />
Ich benutze einen <a href="https://www.campusspeicher.de/?page=c2VydmVy">10 EUR vServer</a> mit relativ wenig RAM als (gitosis) Server. Nun habe ich doch einige Repositories mit umfänglicher Geschichte oder z.T. riesigen Dateien, so daß mancher</p>
<pre>$ git clone &lt;repo-url&gt;</pre>
<p>speicherbedingt die Grätsche macht. <a href="http://kerneltrap.org/mailarchive/git/2008/8/11/2889364">Folgende Einträge</a> in der serverseitigen <code>.git/config</code> bzw. <code>~/.gitconfig</code> schaffen Abhilfe:</p>
<pre># http://kerneltrap.org/mailarchive/git/2008/8/11/2889364
[core]
    packedGitWindowSize = 16m
    packedGitLimit = 64m
[pack]
    threads = 1
    windowMemory = 64m
    deltaCacheSize = 1m</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/billiger-vserver-als-git-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re: Version Control is Your Friend</title>
		<link>http://blog.mro.name/2009/03/re-version-control-is-your-friend/</link>
		<comments>http://blog.mro.name/2009/03/re-version-control-is-your-friend/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 15:16:58 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blog.mro.name/2009/03/re-version-control-is-your-friend/</guid>
		<description><![CDATA[Jeff Lamarche blogs &#8220;Version Control is Your Friend&#8221;. I fully agree that version management is a phantastic pain killer &#8211; even when you&#8217;re a one man show. The important difference version management makes to me, is, that I can delete, clean up and refactor with ease and without the fear of ever loosing anything. And [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://iphonedevelopment.blogspot.com/2009/03/version-control-is-your-friend.html">Jeff Lamarche blogs &#8220;Version Control is Your Friend&#8221;</a>. I fully agree that version management is a phantastic pain killer &#8211; even when you&#8217;re a one man show.</p>
<p>The important difference version management makes to me, is, that I can delete, clean up and refactor with ease and without the fear of ever loosing anything. And removing cruft from my projects helps to remain focused.</p>
<p><span id="more-677"></span></p>
<p>Jeff features <a href="http://en.wikipedia.org/wiki/Subversion_%28software%29">subversion</a>. I think which tool you use doesn&#8217;t matter too much &#8211; important is to do version management at all, from the beginning and in a fine grained manner (per project repo, commit often).</p>
<p>I started using svn with version 0.17 (Jan 2003) but moved to <a href="http://de.wikipedia.org/wiki/Git">git</a> (and <a href="http://gitx.frim.nl/seeit.html">gitx</a>) last year for a couple of reasons:
<ul>
<li>full offline history and operations (due to its distributed nature), so there&#8217;s no moment in your development process when you <i>need</i> network,</li>
<li>extremely compact storage. It&#8217;s not uncommon that a whole git working copy + repo is smaller than a mere svn working copy,</li>
<li>cheap branching and merging,</li>
<li>flexible hosting. If you want to publish a git repo you have a lot of really simple options, starting with ftp + http (static files on a webserver) for readonly repos or any webdav enabled webserver for r/w repos. No installation nor configuration of git components on the server. Most elegant is using ssh and <a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">gitosis</a> if your hosting permits,</li>
<li>doesn&#8217;t rely on IDE integration as much as svn does, as git detects moves and copies by itself (sic!),</li>
<li>lightning fast and capable of insanely huge amounts of data. <a href="http://code.google.com/p/piccolo2d/wiki/WebSiteHowTo#Version_Management">I once had a svn commit of one hour done by git in seconds</a>. Really.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/03/re-version-control-is-your-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vServer mit gentoo &#8211; oder doch besser ohne.</title>
		<link>http://blog.mro.name/2009/03/vserver-mit-gentoo-oder-doch-besser-ohne/</link>
		<comments>http://blog.mro.name/2009/03/vserver-mit-gentoo-oder-doch-besser-ohne/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 20:46:03 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Campusspeicher]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[vServer]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=640</guid>
		<description><![CDATA[Vor 4 Tagen habe ich mir den kleinsten vServer von meinen Hosting Freunden vom Campusspeicher geholt um einige Git Repos (v.a. die Email Backups) jenseits des DSL Flaschenhalses zu lagern. Außerdem wollte ich einen SSH-fähigen Lagerplatz, da mir eine unverschlüsselte FTP Übertragung auf Dauer einfach unangenehm war. Seither habe ich praktisch nichts anderes gemacht, als [...]]]></description>
			<content:encoded><![CDATA[<p>Vor 4 Tagen habe ich mir den kleinsten <a href="http://de.wikipedia.org/wiki/Server#Virtuelle_Server">vServer</a> von meinen <a href="http://www.campusspeicher.de/">Hosting Freunden vom Campusspeicher</a> geholt um einige <a href="http://de.wikipedia.org/wiki/Git">Git Repos</a> (v.a. die Email Backups) jenseits des DSL Flaschenhalses zu lagern.</p>
<p>Außerdem wollte ich einen <a href="http://de.wikipedia.org/wiki/Secure_Shell">SSH-fähigen</a> Lagerplatz, da mir eine unverschlüsselte <a href="http://de.wikipedia.org/wiki/File_Transfer_Protocol">FTP</a> Übertragung auf Dauer einfach unangenehm war.</p>
<p><span id="more-640"></span>Seither habe ich praktisch nichts anderes gemacht, als den Server immer wieder neu zu installieren, da ich leichtsinnigerweise als OS &#8220;gentoo minimal&#8221; genommen habe und sich der Feigling konstant weigert nach <code>emerge --update --newuse --deep world</code> nochmal auf die Beine zu kommen &#8211; wenn sich der <a href="http://hostingfu.com/article/compiling-with-gcc-on-low-memory-vps">gcc nicht wegen Speichermangel gleich weigert zu kompilieren</a>. Woran das liegt &#8211; einigen Verdacht ja, aber keine Ahnung (vServer Laie, der ich bin).</p>
<p>Inzwischen hab ich die Faxen dicke und &#8211; <a href="http://hostingfu.com/article/switched-gentoo-ubuntu">nachdem ich schon fast auf Ubuntu umgestiegen wäre</a> &#8211; begnüge ich mich vorerst mit einem veralteten OS &#8211; hauptsache Git geht und SSH ist einigermaßen dicht &#8211; also:</p>
<p><a href="http://www.kernel.org/pub/software/scm/git/docs/git.html">Git Basis</a>:
<ol>	
<li>KEIN <code>emerge --sync</code> oder <code>world</code></li>
<p>	
<li><code>echo "dev-util/git ~x86" &gt;&gt; /etc/portage/package.keywords</code></li>
<p>	
<li><code>echo "dev-util/git -gtk" &gt;&gt; /etc/portage/package.use</code></li>
<p>	
<li><code>emerge dev-util/git lftp setuptools<br /></code></li>
<p>	
<li>SSH Konfiguration wie im <a href="http://blog.schalanda.name/archives/176-EUserv-vServer-Active-Installation-des-Grundsystems.html">EUSERV gentoo vServer Blog von Jochen Schalanda</a> beschrieben (<code>groupadd ssh &amp;&amp; useradd -g users -G wheel,ssh,portage -m myuser &amp;&amp; passwd -d myuser</code> &#8230;) und evtl. noch zusätzlich den SSH Port von der 22 weg legen,</li>
<p></ol>
<p><a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">Gitosis</a>:
<ol>	
<li><code>useradd -c "git version control" -m -n git</code></li>
<p>	
<li><code>passwd -d git</code></li>
<p>	
<li><code>su - git</code></li>
<p>	
<li>git@localhost ~ $ <code>gitosis-init &lt; /tmp/id_dsa.pub</code></li>
<p>	
<li>git@localhost ~ $ <code>exit</code></li>
<p></ol>
<p><a href="http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html">Git-Daemon</a>:
<ol>	
<li><code>rc-update add git-daemon default</code></li>
<p></ol>
<p>So, das muß für&#8217;s erste reichen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/03/vserver-mit-gentoo-oder-doch-besser-ohne/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git Repo auf WebDAV (1&amp;1)</title>
		<link>http://blog.mro.name/2008/10/git-repo-auf-webdav-11/</link>
		<comments>http://blog.mro.name/2008/10/git-repo-auf-webdav-11/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 21:27:58 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[WebDAV]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=200</guid>
		<description><![CDATA[Eigene Git Repositories gehen auch mit billigem Shared Hosting recht bequem, falls der Hoster WebDAV anbietet. Z.B. bei 1&#38;1 ist WebDAV auf Port 81 aktiviert. Und so geht&#8217;s: WebDAV Zugriff Hier führen viele Wege nach Rom &#8211; ich wähle den via davfs2. Letztlich müssen wir nur in der Lage sein, ein Verzeichnis auf dem WebDAV [...]]]></description>
			<content:encoded><![CDATA[<p><a>E</a>igene <a href="http://de.wikipedia.org/wiki/Git">Git</a> Repositories gehen auch mit billigem Shared Hosting recht bequem, falls der Hoster <a href="http://de.wikipedia.org/wiki/WebDAV">WebDAV</a> anbietet. Z.B. bei <a href="http://www.1und1.de/">1&amp;1</a> ist WebDAV auf Port 81 aktiviert.</p>
<p>Und so geht&#8217;s:</p>
<h3>WebDAV Zugriff</h3>
<p>Hier führen viele Wege nach Rom &#8211; ich wähle den via <a href="http://dav.sourceforge.net/">davfs2</a>. Letztlich müssen wir nur in der Lage sein, ein Verzeichnis auf dem WebDAV Server anzulegen. Natürlich geht das auch per <a href="http://de.wikipedia.org/wiki/File_Transfer_Protocol">FTP</a>, aber wenn wir schon WebDAV haben, benutzen wir&#8217;s auch gleich dafür.</p>
<ol>
<li>Eintrag in <code>/etc/fstab</code>:
<pre>$ echo "http://www.myserver.example:81/	/home/localusername/mnt/myserver davfs noauto,user,nolocks 0 0" &gt;&gt; /etc/fstab</pre>
</li>
<li>WebDAV Zugangsdaten für davfs2:
<pre>$ mkdir -p ~/.davfs2
$ echo "http://www.myserver.example:81/ MyDavUser MyDavPwd" &gt;&gt; ~/.davfs2/secrets
$ chmod 600 ~/.davfs2/secrets</pre>
</li>
<li>mounten:
<pre>$ mount /home/localusername/mnt/myserver</pre>
</li>
<li>das leere Verzeichnis anlegen:
<pre>$ mkdir /home/localusername/mnt/myserver/myproject.git</pre>
</li>
</ol>
<h3>Ein (remote) Git Repo anlegen</h3>
<p>Siehe dazu auch <a href="https://largo.homelinux.org/blog/?q=node/18">Shared Git Repository per Webdav</a>.</p>
<ol>
<li>ein leeres Verzeichnis myproject.git auf dem WebDAV Server anlegen,</li>
<li>lokal ein leeres Git Repo anlegen:
<pre>$ mkdir myproject.git
$ cd myproject.git
$ git init --bare</pre>
</li>
<li>ggf. ein bestehendes Git Repo &#8220;importieren&#8221;:
<pre>$ git pull UrlOfExistingRepo</pre>
</li>
<li>WebDAV Zugangsdaten für git hinterlegen:
<pre>$ echo "machine myserver.example login MyDavUser password MyDavPwd" &gt;&gt; ~/.netrc
$ chmod 600 ~/.netrc</pre>
</li>
<li>und das neue Repo hochladen:
<pre>$ git push --all --force http://myserver.example:81/myproject.git</pre>
</li>
</ol>
<h3>Nicht-WebDAV Zugriffe verhindern</h3>
<p>Soll der Zugriff auf das Repo exklusiv nur per WebDAV erlaubt sein, empfiehlt es sich das Verzeichnis myproject.git auf dem Webserver zu sperren bzw. nur einen Benutzer zu erlauben, der ansonsten nicht benutzt wird.</p>
<p>Das geht über die Management Console des Webhosters oder indem man die entsprechende <a href="http://de.selfhtml.org/servercgi/server/htaccess.htm#verzeichnisschutz">.htaccess</a> Datei selbst erstellt und im Verzeichnis myproject.git ablegt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2008/10/git-repo-auf-webdav-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
