我正在用 ruby 编写自己的 git post-receive 钩子,它类似于以下内容:
if !File.exists?(rep_dir+repo)
puts "Cloning repository #{repo} into #{rep_dir}."
`cd #{rep_dir}; sudo git clone file:////home/git/repositories/#{repo}.git`
exit
end
这个钩子是在 gitolite 通用钩子中设置的,所以当我推送新存储库的配置时,我会立即将其克隆到新位置。
我还在 gitolite 配置中循环每个项目以检查每个项目是否存在存储库,但这不是我遇到问题的地方。
我的问题是,每当此脚本运行时,我都会得到:
remote: cd: 1: can't cd to /home/<somedir>/repositories/
remote: Cloning repository gitolite-admin into /home/<somedir>/repositories/.
钩子运行后,存储库未克隆到目标目录。我阅读了有关取消设置 GIT_DIR 环境变量的信息,但没有成功。