5

完整的错误信息是:

could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks

当我对 gitolite-admin 进行任何更改并推送这些更改时,就会发生这种情况。这些钩子是干什么用的?我需要它们吗?符号链接有什么问题?

我在 中为我的存储库指定了另一个位置$REPO_BASE,但是我使用该命令使 gitolite 用户成为此路径和所有存储库的所有者,chown因此它不应该是权限问题。

4

3 回答 3

4

好的,所以我发现了为什么会这样。可能是因为我是 Git 的菜鸟。我把存储库放在普通存储库的 $REPO_BASE 中,实际的源代码文件直接位于“根”目录下。

例如,/mnt/data/git/repositories/aproject/Main.cpp等等。原来我需要在该路径下拥有实际的存储库,所以我做到了(我可能只是能够为此使用 .git 文件夹,但我就是这样做的)git clone --bare aproject.git aproject.git2 && rm -rf aproject.git && mv aproject.git2 aproject.git:。

简而言之,我对存储库做了一个裸克隆。所以现在,/mnt/data/git/repositories/aproject/我们实际上可以找到“钩子”文件夹(错误消息抱怨它找不到)。在新推送 gitolite-admin 存储库后,所有密钥都添加到了 authorized_keys 并且错误消息消失了。

于 2011-08-14T09:05:45.527 回答
3

我有同样的错误,这是一个权限问题。

确保您的 Project.git 归 Git 用户所有,而不是 root。

以为我会分享。

于 2012-04-04T05:52:52.937 回答
0

这要么是权限问题(您说不应该),要么是 chmod(访问)问题。
为了更加确定,您可以使用两个目录的“ls -alrt”来编辑您的问题。
如果在新的 repos 声明期间失败,它将继续尝试在每次新推送时声明它们。

于 2011-08-13T13:08:29.360 回答