我正在尝试使用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
当我第一次插入存储库代码 1 和代码 2 时,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/
所以我修复了回购code1.git
的权限,并code2.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 {} ;
这两个存储库出现在 gitweb 界面上。但是,不会为这两个存储库中的每一个生成gl-conf
。现在,执行提交,权限再次混乱,并且存储库没有显示。
我做错了什么?
谢谢
从这个问题中读到,我部分解决了它,就像这样:
-
最初,gitweb 没有任何读取存储库的权限,因此我们通过运行 gitweb 将 gitweb 用户(通常
www-data
或apache
)添加到 git 组来解决问题usermod -a -G git www-data
(请注意服务器的配置,因为根据您配置gitolite
的方式,这可能会略有不同。 -
将
.gitolite.rc
文件(存在于 git 用户主目录中)上的UMASK
属性从默认值0077
更改为0022
,相当于目录的755 (rwxr-xr-x)
和文件的644 (rw-r--r--)
。 -
对于现有存储库,可能需要运行
chmod -R g+rX
更多信息请见上面的链接。
无论如何,每次我编辑gitolite-admin
存储库时,这都会显示在当前存储库列表中。如何改变它?
此外,如果权限正常,您应该检查哪个目录正在扫描 GitWeb,以及将 Gitolite 存储库放在哪里,它可以不同,并且符号链接使新的存储库可见。