This just seems to be a case of Not Invented Here syndrome. Using gitolite or gitosis would have done the job faster, gives you the ability to have acl's set up per user and all of it uses simple configuration files.
Don't see why it was necessary to criticize the post so much. True, the title is a bit inadequate, but it's nice to find a combination of several tidbits, tips and tricks combined on one page.
So, most of this is based on the ability to specify the command that the user is <i>forced</i> to run in authorized_keys to be a wrapper command that you wrote. This wrapper command reads its arguments and then will execve git shell as appropriate.<p>What's important to note is that this <i>also</i> talks about SSH_ORIGINAL_COMMAND, which is the environment variable set by sshd when invoking the forced command that is specified in authorized_keys.<p>Clever hack.
Isn't the point of the <i>D</i> in <i>DVCS</i> that this is supported out of the box? What's wrong with:<p><pre><code> root@server# apt-get install git-core
git@server$ mkdir ~git/repo.git
git@server$ git init $!
user@client$ git remote add origin ssh://git@server/repo.git</code></pre>