我身上发生了一些疯狂的事情。
如果你访问http://git.jshawl.com/,你会看到一个单独的 repo“testing.git”,但是如果你点击右下角的“TXT”,你会看到另一个 repo“wordpress-theme”
另外,我知道那里有 repo,因为我可以克隆它
git clone [email protected]/boilerplates/wordpress-theme
是什么赋予了?
以下是有关我的设置的更多背景信息:
git.jshawl.com 托管在 Mac OS X 上,位于目录“/Users/git/repositories”(这是我安装 gitolite 时设置的),我有一个指向此目录的 VHOST。我还将我的 gitweb.cgi 文件放入该目录中。
我对 boilerplates 目录和 wordpress-theme 目录的权限都是 755 (rwxr-xr-x)
答案1
注意:gitweb 不是用来克隆的。
它是用来浏览的。
如果您想要克隆,您必须在您的 apache 服务器配置中定义一个自定义根以便调用 gitolite-shell,并定义 GIT_HTTP_BACKEND 并指向git/libexec/git-core/git-http-backend
cgi 脚本(随 git 一起提供),允许通过 Web 进行克隆/推送/拉取。
以下是其样子的摘录(参见完整版本在这里)
# GitHttp on @PORT_HTTP_HGIT@
Listen @PORT_HTTP_HGIT@
<VirtualHost @FQN@:@PORT_HTTP_HGIT@>
ServerName @FQN@
ServerAlias @HOSTNAME@
SetEnv GIT_PROJECT_ROOT @H@/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv GITOLITE_HTTP_HOME @H@
ScriptAlias /hgit/ @H@/gitolite/bin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Location /hgit>
在你的情况下,它看起来像我在我的上一个答案还没有完全到位。仅仅调用 gitweb.cgi 是不够的。
它将仅显示文件中列出的项目project.list
,但如果没有任何 gitolite 过滤器,链接TXT
将显示目录中的所有 .git 裸存储库repositories
。