我已经安装并配置了 gitolite 和 gitweb。gitolite 工作正常,所有存储库和用户都按预期工作.. 但是当我使用 gitweb 时,我看到 404 - 没有找到项目。我继续看到projects.list 是空的。projects.list 文件的权限是 640,用户和组是相同的“git”。
我猜 gitolite 也会在 projects.list 中添加一个新的存储库,对吧?我的项目根目录是 /home/git/repositories。
注意:这已在较新版本的 gitolite 中进行了重新设计;这是相关文档。您仍然可以像以前一样向特殊用户“gitweb”授予读取权限,您还可以在 repos 中添加这样的行:
config gitweb.owner = owner name
config gitweb.description = some description
config gitweb.category = some category
如果为 repo 设置了这些配置参数中的至少一个,它将可供 gitweb 访问。
和以前一样,“gitweb 可以访问”意味着“神奇地添加到 projects.list”。
原答案:
Gitolite 明智地默认为最严格的权限 - 除非您告诉它允许,否则没有人可以看到存储库。这当然包括 gitweb。为了让 gitweb 查看存储库,引用gitolite.conf 文档:
同样,授予 gitweb 读取权限以允许 gitweb CGI 显示 repo。像这样的东西:
repo foo bar baz R = gitweb
这为您提供了一种为 gitweb 和/或守护进程访问提供多个存储库的快速方法。
但是,为项目设置描述也会启用 gitweb 权限,因此您可以根据需要这样做。当然,在这种情况下,您必须分别处理每个 repo。在 gitolite.conf 中添加这样的行:
foo = "some description" bar = "some other description" baz = "yet another description"
如果您愿意,您还可以指定 gitweb 的所有者来显示;例如我可能会使用:
gitolite "Sitaram Chamarty" = "fast, secure, fine-grained, access control for git"
如果您告诉 Gitolite 通过其中一种方法使其可用于 gitweb,则 Gitolite 仅将存储库放在 projects.list 中。它也会使用所有者和描述来填充projects.list,所以通常最好这样做。请注意,如果您的 Web 服务器以与 Gitolite 不同的用户身份运行,您需要确保它以某种方式可以访问相关目录,默认情况下这些目录对其他用户是隐藏的。有一些关于更复杂案例的示例文档:gitolite-gitweb-http-backend