我试图让gitweb与gitolite合作......但到目前为止还没有成功
我正在使用RedHat Linux机器。名为git
的用户存在。
gitolite安装在:/home/git
下
存储库位置:/home/git/repositories
请注意,gitweb与普通香草git一起工作正常。现在我正在尝试使用gitolite。
以下是我的文件:
/etc/gitweb.conf
$projectroot = "/home/git/repositories";
@git_base_url_list = qw(ssh://[MyHostName]/home/git/projects.list);
$projects_list = "/home/git/projects.list"
/home/git/projects.list
myrepo1.git
myrepo2.git
/home/git/.gitolite.rc
:
$PROJECTS_LIST = $ENV{HOME} . "/projects.list";
$GL_GITCONFIG_KEYS = "gitweb.url receive.denyNonFastforwards receive.denyDeletes";
我错过了什么配置? 我没有对Apache做过任何更改。
网址:http://MyHostName/git
这会产生404错误,说明找不到存储库。
答案 0 :(得分:13)
我最近设置了gitolite和gitweb,发现/etc/gitweb.conf
需要非常的配置。你看起来对我来说是对的。 /home/git/repositories
上有哪些权限?您可能会发现它们限制性太强。试试这个:
$ chmod -R 775 /home/git/repositories
这就是为我解决问题的方法,(虽然我认为有一种更安全的方式来设置权限)。如果可行的话,我建议您只关注Apache(或者正在执行的任何用户帐户gitweb)对存储库目录的更细粒度的权限。
我在.gitolite.rc
:
GIT_CONFIG_KEYS => 'gitweb\.(owner|description|category)',
以便以下内容适用于<gitolite-admin>/conf/gitolite.conf
:
config gitweb.owner = owner name
config gitweb.description = some description
config gitweb.category = some category
答案 1 :(得分:0)
您需要在/etc/gitweb_config.perl
的末尾添加Gitolite contrib/gitweb.conf
换句话说,您需要从gitweb.conf
perl文件中调用Gitolite函数,否则集成GitWeb-Gitolite将无法工作。
# check for (at least) "R" permission
my ($perm, $creator) = &repo_rights($repo);
return ($perm =~ /R/);
(此处repo_rights
是来自gitolite.pm)
查看“helping with gitweb”部分。
您需要在gitweb_config.perl
结束时添加的最后一行是:
use lib (".");
require "gitweb.conf.pl";
这样,您就可以避免任何“500 - Internal Server Error syntax error at /etc/gitweb.conf
”错误消息。
如果您没有gitweb_config.perl
声明gitweb.conf.pl
,而是直接“gitweb.conf.pl
”,则添加“use lib (".");
”作为第一行文件。
答案 2 :(得分:0)
1 /安装gitolite
并进行设置。然后,确保/home/git/.gitolite.rc
包含看起来像:
%RC = (
...
UMASK => 0027,
...
ENABLE => [
...
'gitweb',
...
]
);
2 /设置$projectroot
的{{1}}和$projects_list
指令(以匹配/etc/gitweb.conf
文件和projects.list
目录的位置)。像:
repositories
3 /确保webserver用户也可以读取当前的存储库文件。这些例子来自基于debian的系统,所以YMMV:
$projectroot = "/home/git/repositories";
...
$projects_list = "/home/git/projects.list";
4 /最后在客户端计算机的sudo adduser www-data git # append `www-data` user to a `git` group
sudo chmod g+r /home/git/projects.list # make sure group members can read the `project.list`
sudo chmod -R g+rx /home/git/repositories # recursively set less restrictive access mode for group members
sudo /etc/init.d/apache2 restart # restart web server to apply these changes
存储库的gitweb
文件中配置/conf/gitolite.conf
用户的访问权限,并通过提交和推送它们(标准方式)来应用它们。我们希望通过gitolite-admin
查看和管理的存储库必须具有以下访问权限:
gitweb
注意:repo testing
RW+ = @all
R = gitweb # add this line to make the repo browsable using `gitweb`
仅表明文件中还有其他配置指令。不要把它们放在那里!
不需要其他标记来...
可视化gitlab
存储库。
适用于({至少)gitolite
3.6.6和gitolite
2.1.4