我试图让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错误说 - 找不到存储库。
我最近设置了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
你需要在Gitolite contrib/gitweb.conf
的末尾添加/etc/gitweb_config.perl
。
换句话说,你需要从你的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 (".");
”作为该文件的第一行。
1 /安装gitolite
并进行设置。然后,确保/home/git/.gitolite.rc
包含看起来像这样的未注释部分就足够了:
%RC = (
...
UMASK => 0027,
...
ENABLE => [
...
'gitweb',
...
]
);
2 /正确设置$projectroot
的$projects_list
和/etc/gitweb.conf
指令(以匹配projects.list
文件和repositories
目录的位置)。喜欢:
$projectroot = "/home/git/repositories";
...
$projects_list = "/home/git/projects.list";
3 /确保Webserver用户也可以读取当前存储库文件。这些例子来自基于debian的系统,所以YMMV:
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
4 /最后在客户端计算机上的gitweb
存储库的/conf/gitolite.conf
文件中配置gitolite-admin
用户的访问权限,并通过提交和推送它们来应用它们(标准方式)。我们希望通过gitweb
查看和管理的存储库必须具有如下访问权限:
repo testing
RW+ = @all
R = gitweb # add this line to make the repo browsable using `gitweb`
注意:...
仅建议文件中还有其他配置指令。不要把它们放在那里!
没有其他变化是必要的,以使qazxsw poi可视化qazxsw poi存储库。
适用于(至少)gitlab
3.6.6和gitolite
2.1.4