2

我正在尝试将 trac 与 git 挂钩,并且大多数都很好,除了一些存储库之外,我无法从 git 中获取修订信息。

完成以下操作后,Trac 正确收集了修订版

chmod -R 777 <git-repo>/objects/

(我知道 777 很危险,它只是为了诊断目的)

但是,对于那些新的提交,提交的项目仍然是 0700 权限。

drwxrwxrwx 2 git git 4.0K 2013-02-26 10:49 80
drwxrwxrwx 2 git git 4.0K 2013-02-26 10:49 0a
drwxrwxrwx 2 git git 4.0K 2013-02-26 11:01 04
drwxrwxrwx 2 git git 4.0K 2013-02-26 11:01 a6
drwxrwxrwx 2 git git 4.0K 2013-02-26 11:01 61
drwxrwxrwx 2 git git 4.0K 2013-02-26 11:01 2f
drwx------ 2 git git 4.0K 2013-02-26 12:13 da
drwx------ 2 git git 4.0K 2013-02-26 12:13 a3
drwx------ 2 git git 4.0K 2013-02-26 12:13 8c
drwx------ 2 git git 4.0K 2013-02-26 12:13 26

但最奇怪的是,对于同一台机器内的其他一些 git 存储库,那些新的对象文件夹大多是 755 权限(这对 Trac 来说仍然很好)。

drwxr-xr-x 2 git git 4.0K 2011-07-12 17:22 14
drwxr-xr-x 2 git git 4.0K 2011-07-12 17:22 f5
drwxr-xr-x 2 git git 4.0K 2011-07-12 17:22 9e
drwxr-xr-x 2 git git 4.0K 2013-02-26 14:12 aa
drwx------ 2 git git 4.0K 2013-02-26 14:12 76
drwxr-xr-x 2 git git 4.0K 2013-02-26 14:12 44
drwxr-xr-x 2 git git 4.0K 2013-02-26 14:12 c5
drwxr-xr-x 2 git git 4.0K 2013-02-26 14:12 9c
drwx------ 2 git git 4.0K 2013-02-26 14:12 6a

我可以知道这可能是什么原因吗?非常感谢

4

1 回答 1

1

您需要检查执行 track daemon 的用户是否与 git 用户在同一组中。

考虑这个安装过程

useradd -m -K UMASK=027 git
useradd -m -K UMASK=077 -G git trac

由 git 创建的带有 umask 027 的任何文件仍然可以被 trac 读取。

如果您使用的是 gitolite,如此处所述,您需要设置umask.gitolite.rc0027 以允许组具有读取权限。
Rc.pm,默认情况下它是 077 而不是 027:

# HELP for all the other external programs (the syntactic sugar helpers and
# the various programs/functions in the 8 trigger lists), can be found in
# doc/non-core.mkd (http://sitaramc.github.com/gitolite/non-core.html) or in
# the corresponding source file itself.

%RC = (
    # if you're using mirroring, you need a hostname. This is *one* simple
    # word, not a full domain name. See documentation if in doubt
    # HOSTNAME => 'darkstar',
    UMASK => 0077,
于 2013-02-26T07:15:23.190 回答