我已经开始评估一款名为subgit的软件,它可以让你无缝地将一个 repo 与 SVN 或 GIT 连接起来。
在我们的整个组织中,我们使用 apache 连接我们的 repos,并且尝试将其与 GIT 结合起来变得有些麻烦。
总的来说,我们希望允许在没有身份验证的情况下进行读取访问,并且应该对写入进行身份验证,这在 SVN 中可以正常工作,但在 GIT 中似乎没有那么简单。
除此之外,让 apache 识别它是否是 GIT/SVN 请求并找出指向客户端的位置,这样无论您使用什么回购系统,您都可以使用相同的 url。
下面是配置,现在我们对 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>
任何输入将不胜感激!