Git / Gitolite有些文件夹空了,权限问题?

时间:2012-06-06 16:09:44

标签: git gitolite

我正在使用git,但是在一个集中的庄园里。我有一台服务器托管我们拉/推的回购。当我在另一台机器上拉/克隆时,我注意到repo中的几个文件夹是空的(当我有一台新计算机并克隆了repo时,注意到了这一点)。我查看了gitolite web界面,这些文件夹的权限是“m ---------”,其他文件夹是drwxr-xr-x。我不确定它是如何得到这种方式的...我已经尝试过一些东西但是无法修复它。

1 个答案:

答案 0 :(得分:2)

可以在gitweb source中解释:

# convert file mode in octal to symbolic file mode string
sub mode_str {
  my $mode = oct shift;

  if (S_ISGITLINK($mode)) {
    return 'm---------';
  } elsif (S_ISDIR($mode & S_IFMT)) {
    return 'drwxr-xr-x';
  } elsif (S_ISLNK($mode)) {
    return 'lrwxrwxrwx';
  } elsif (S_ISREG($mode)) {
    # git cares only about the executable bit
    if ($mode & S_IXUSR) {
      return '-rwxr-xr-x';
    } else {
      return '-rw-r--r--';
    };
  } else {
    return '----------';
  }
}

使用S_IFGITLINK => 0160000,这是子模块的特殊模式

自2007年和this patch以来,子模块条目显示在gitweb中:

  

目前只有超级模块(当前存储库)中子模块条目历史的链接,因为gitweb不知道在哪里搜索子模块存储库对象。

因此它们不是空目录,只是子模块的根目录。

有关详情,请参阅“Git - easy way pull latest of all submodules”。