完整的错误消息是:
could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrepo.git/hooks
当我对gitolite-admin进行任何更改并推送这些更改时会发生这种情况。这些钩子是什么?我需要它们吗?符号链接有什么问题?
我已在$REPO_BASE
中为我的存储库指定了另一个位置,但我使用chown
命令使gitolite用户成为此路径的所有者和所有存储库,因此它不应该是权限问题。
答案 0 :(得分: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/
我们实际上可以找到“hooks”文件夹(错误消息抱怨它无法找到)。在新推出的gitolite-admin repo之后,所有密钥都被添加到authorized_keys并且错误消息消失了。
答案 1 :(得分:3)
我遇到了同样的错误,这是一个权限问题。
确保您的Project.git归Git用户所有,而不是root用户。
以为我会分享。
答案 2 :(得分:0)
这是一个权限问题(您说它不应该是)或chmod(访问)问题 为了更加确定,您可以使用两个目录的“ls -alrt”编辑您的问题 如果它在new repos declaration期间失败,它将继续尝试在每次新推动时声明它们。