我安装并配置了gitolite和gitweb。 gitolite工作正常,所有存储库和用户按预期工作..但是当我使用gitweb时,我看到404 - 没有找到任何项目。我继续看到projects.list是空的。 projects.list文件的权限是640,用户和组是相同的“git”。
我猜gitolite还为projects.list添加了一个新的存储库,对吧?我的项目根目录是/ home / git / repositories。
答案 0 :(得分:5)
注意:这已经在较新版本的gitolite中重新设计;这是the relevant documentation。你仍然可以像以前一样为特殊用户“gitweb”提供读取权限,你也可以添加这样的行来回购:
config gitweb.owner = owner name
config gitweb.description = some description
config gitweb.category = some category
如果为回购设置了至少一个配置参数,gitweb将可以访问它。
和以前一样,“gitweb可以访问”意味着“神奇地添加到projects.list”。
原始答案:
Gitolite明智地默认使用最严格的权限 - 在你告诉它让它们出现之前,没有人可以看到存储库。这当然包括gitweb。为了让gitweb看到存储库,引用gitolite.conf documentation:
同样,给予gitweb读取权限以允许gitweb CGI显示回购。像这样:
repo foo bar baz R = gitweb
这为您提供了一种为gitweb和/或守护程序访问提供多个repos的快速方法。
但是,为项目设置描述也会启用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通过其中一种方法将它们提供给gitweb,那么Gitolite只会在projects.list中放置存储库。它还将使用所有者和描述来填充projects.list,因此通常最好这样做。请注意,如果您的Web服务器以与Gitolite不同的用户身份运行,您需要确保它以某种方式访问相关目录,默认情况下这些目录对其他用户是隐藏的。有一些关于更复杂案例的示例文档:gitolite-gitweb-http-backend