私は、レポを SVN または GIT とシームレスに接続できるsubgitというソフトウェアの評価を開始しました。
私たちの組織全体で、apache を使用してレポジトリとやり取りしていますが、これを GIT と結合しようとすると、やや面倒になります。
全体として、認証なしで読み取りアクセスを許可し、書き込みを認証する必要があります。これは SVN では問題なく機能しますが、GIT ではそれほど簡単ではないようです。
これに加えて、使用しているレポシステムに関係なく同じ URL を使用できるように、apache にそれが GIT/SVN 要求であるかどうかを識別させ、クライアントを指す場所を特定させると便利です。
以下は構成です。現在、svn には認証なしの適切な読み取りアクセスと認証付きの書き込みアクセスがありますが、GIT の場合は認証なしの r/w です。
ServerName android.subgit.domain.tld
DocumentRoot /home/subgit/public_html
CustomLog /home/subgit/logs/access_log combined
SetEnv GIT_PROJECT_ROOT /home/subgit/repos/subgit-repo
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER $REDIRECT_REMOTE_USER
ScriptAlias /git/ /usr/local/libexec/git-core/git-http-backend/
<LocationMatch "/svn">
DAV svn
SVNPath /home/subgit/repos/subgit-repo
Include /etc/apache2/conf.d/auth-mysql
AuthzSVNAccessFile /home/subgit/etc/subgit-repo
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</LocationMatch>
<LocationMatch "/git">
Options +ExecCGI
</LocationMatch>
<Directory "/usr/local/libexec/git-core/git-receive-pack">
Include /etc/apache2/conf.d/auth-mysql
Require valid-user
</Directory>
</VirtualHost>
任意の入力をいただければ幸いです。