2

我正在尝试使用 Gitolite + Gitweb,但遇到了一些问题..

conf/gitolite.conf的是以下

@dataset_repos      = dat1 dat2
@closedsrc_repos    = cod1 cod2 
@opensrc_repos      = testing

@admins             = user1 user2
@bios               = user1 user2 user3
@coders             = user1 user3

repo gitolite-admin
    RW+     =   @admins

repo @opensrc_repos
    RW+     =   @all

repo @dataset_repos
    RW+     =   @admins @bios 

repo @closedsrc_repos
    RW+     =   @admins @coders

当我第一次插入存储库 code1 和 code2 时,git 告诉我:

remote: Initialized empty Git repository in /home/git/repositories/code1.git/
remote: Initialized empty Git repository in /home/git/repositories/code2.git/

我在 code2 上做了一个初始提交,但它没有出现。所以我检查了许可,我发现这些是:

drwxrwx--- 8 git git 4096 Oct  1 18:58 ./
drwxr-xr-x 8 git git 4096 Oct  1 19:08 ../
drwxrwx--- 8 git git 4096 Oct  1 19:08 gitolite-admin.git/
drwxrws--- 7 git git 4096 Oct  1 17:15 dat1.git/
drwx------ 7 git git 4096 Oct  1 18:58 code1.git/
drwx------ 7 git git 4096 Oct  1 18:58 code2.git/
drwxrwx--- 7 git git 4096 Sep 30 18:20 testing.git/
drwxrws--- 7 git git 4096 Oct  1 17:15 dat2.git/

所以我修复了 repo 的权限,code1.gitcode2.git使用:

# Fix ownership
sudo chown -R git:git *

# Fix directory permissions
sudo find <repo.git> -type d -exec chmod 770 {} \;

# Fix file permissions
sudo find <repo.git> -type f -exec chmod 660 {} \;

这两个 repos 出现在 gitweb 界面上。但是,gl-conf对于这两个存储库中的每一个都没有生成。现在,进行提交,权限再次混乱,并且没有显示回购..

我究竟做错了什么?

谢谢

4

2 回答 2

1

这个问题中阅读,我部分地解决了这个问题:

  1. 最初,gitweb 没有读取存储库的任何权限,因此我们通过运行将 gitweb 用户(通常为www-dataapache)添加到 git 组来解决问题usermod -a -G git www-data(请注意您的服务器配置,因为这可能有点不同,根据你的配置gitolite

  2. 将文件的UMASK属性.gitolite.rc(存在于 git 用户主目录中)从默认值0077更改为0022,相当于755 (rwxr-xr-x)目录和644 (rw-r--r--)文件。

  3. 对于现有的存储库,您可能需要运行chmod -R g+rX

有关上面链接的更多信息。

无论如何,每次我编辑gitolite-adminrepo 时,它都会显示在当前存储库列表中。如何更改它?

于 2013-10-01T23:26:10.637 回答
0

此外,如果权限没问题,您应该检查哪个目录是扫描 gitweb 以及放置 gitolite 存储库的位置,它可以是不同的,并且符号链接使新存储库可见。

于 2017-02-17T11:18:26.147 回答