1

我在 Ubuntu 上安装了最新版本的 gitolite:

我在跑

gitolite setup -pk user2.pub

我得到的错误是:

FATAL: could not symlink /home/git/.gitolite/hooks/common/update to MyRepository.
git/hooks
  at /home/git/gitolite/src/lib/Gitolite/Conf/Store.pm line 330

有什么想法吗?


编辑:好的 - 所以目录

MyRepository.git/hooks

不存在。只有

MyRepository.git/.git/hooks/

gitolite是怎么回事?

4

2 回答 2

2

其中store_common()包括:

# override/propagate gitolite defined hooks for all repos
ln_sf( "$rc{GL_ADMIN_BASE}/hooks/common", "*", "$repo.git/hooks" );

这反过来又会调用ln_sf()

sub ln_sf {
    trace( 3, @_ );
    my ( $srcdir, $glob, $dstdir ) = @_;
    for my $hook ( glob("$srcdir/$glob") ) {
        $hook =~ s/$srcdir\///;
        unlink "$dstdir/$hook";
        symlink "$srcdir/$hook", "$dstdir/$hook" or croak "could not symlink $srcdir/$hook to $dstdir\n";
    }
}

dstdir这里似乎不完整。应该是/home/git/repositories/MyRepository.git/hooks

这可能是因为初始设置不正确。

于 2012-07-31T21:32:51.037 回答
0

我在尝试将旧存储库导入 gitolite 时看到了上述错误。

gitolite 存储库目录包含“裸”存储库的“.git”文件夹。这意味着如果想将存储库导入 gitolite,他应​​该执行以下操作:
-- 确保 oldrepo 是一个裸 git 存储库
-- 以 gtolite 用户身份运行以下代码

cd $HOME
cp -R oldrepo/.git repositories/oldrepo.git
gitolite setup

我的错误是将旧存储库作为包含“.git”的目录。我发现这是错误的。

例如我的旧存储库:

os-HP /home/gitrepo/repositories $ ll scripts/.git/
total 52
drwxrwsrwx   8 gitrepo gitrepo 4096 Jan 25 10:59 .
drwxrwsrwx   3 gitrepo gitrepo 4096 Jul 26 15:48 ..
drwxrwsrwx   2 gitrepo gitrepo 4096 Jan 25 10:49 branches
-rwxrwxrwx   1 gitrepo gitrepo    8 Jan 25 10:53 COMMIT_EDITMSG
-rw-rw-r--   1 gitrepo gitrepo   91 Jan 25 10:59 config
-rwxrwxrwx   1 gitrepo gitrepo   73 Jan 25 10:49 description
-rwxrwxrwx   1 gitrepo gitrepo   23 Jan 25 10:49 HEAD
drwxrwsrwx   2 gitrepo gitrepo 4096 Jan 25 10:49 hooks
-rwxrwxrwx   1 gitrepo gitrepo  264 Jan 25 10:53 index
drwxrwsrwx   2 gitrepo gitrepo 4096 Jan 25 10:49 info
drwxrwsrwx   3 gitrepo gitrepo 4096 Jan 25 10:52 logs
drwxrwsrwx 133 gitrepo gitrepo 4096 Jun 28 08:50 objects
drwxrwsrwx   4 gitrepo gitrepo 4096 Jan 25 10:49 refs

与 gitolite 附带的测试存储库相比:

ey ~/repositories $ ll testing.git/
total 40
drwx------  7 gitrepo gitrepo 4096 Jul 26 02:37 .
drwx------  5 gitrepo gitrepo 4096 Jul 26 08:46 ..
drwx------  2 gitrepo gitrepo 4096 Jul 26 02:37 branches
-rw-------  1 gitrepo gitrepo   66 Jul 26 02:37 config
-rw-------  1 gitrepo gitrepo    0 Jul 26 05:16 git-daemon-export-ok
-rw-------  1 gitrepo gitrepo  120 Jul 26 05:16 gl-conf
-rw-------  1 gitrepo gitrepo   23 Jul 26 02:37 HEAD
drwx------  2 gitrepo gitrepo 4096 Jul 26 05:13 hooks
drwx------  2 gitrepo gitrepo 4096 Jul 26 02:37 info
drwx------ 10 gitrepo gitrepo 4096 Jul 26 03:05 objects
drwx------  4 gitrepo gitrepo 4096 Jul 26 02:37 refs
于 2015-07-26T13:01:23.560 回答