我已经安装并配置了gitolite和gitweb。Gitolite工作正常,所有存储库和用户都按预期工作。但是当我使用gitweb时,我看到一个404-没有找到任何项目。我接着看到projects.list是空的。projects.list文件的权限是640,用户和组是相同的“git”。
我猜gitolite也会向projects.list添加一个新的存储库,对吧?我的项目根目录是/home/git/repositories。
最佳答案
注意:这已经在新版本的gitolite中进行了修改;这里是the relevant documentation。您仍然可以像以前一样授予特殊用户“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 documentation:
类似地,将read权限授予gitweb以允许gitweb cgi显示repo。像这样的:
repo foo bar baz
R = gitweb
这为您提供了一种为gitweb和/或守护进程访问提供多个repo的快速方法。
但是,为项目设置描述也会启用gitweb权限,因此如果需要,可以这样做。当然,在这种情况下,你必须分别处理每个回购协议。将这样的行添加到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只在projects.list中放置存储库,如果您告诉它通过这些方法之一使它们对GitWeb可用的话。它还将使用owner和description填充projects.list,因此通常最好这样做。请注意,如果您的web服务器以不同于gitolite的用户身份运行,您需要确保它以某种方式访问相关目录,这些目录在默认情况下对其他用户是隐藏的。有一些关于更复杂案例的示例文档:gitolite-gitweb-http-backend