我在git服务器上运行Gitolite,在“git”系统用户下运行。我添加到git user:export STAGE_PATH="/srv/http/stage"
的〜/ .profile,你可以猜到,我想在推送更改时自动将repo网站放在舞台上。但是,在post-receive hook中,似乎变量STAGE_PATH不可用。这是正常的吗?有没有办法从post-receive hook访问环境变量?
答案 0 :(得分:1)
The git hook will not login the git
user to a shell and therefore things export
ed in the usual places won't be available. In fact only a rather small number of environment variables will be set when the hook is executed.
You may check this out by inserting for line in $(printenv); do echo $line; done
) in your hook. Of course only for debugging purposes.
答案 1 :(得分:0)
如何添加 。 〜混帐/ .profile文件 在你的收到后钩子脚本的顶部(假设它是sh)。
但目前还不清楚你想要什么。你要么:
1)只是推到外部地点,并不关心回购之间的共性。在这种情况下,为什么需要来自其他地方的环境变量?为什么不将最终位置放在post-receive钩子脚本本身?2)你想要一些外部变量来控制你将要推送大量不同存储库的根目录,如果你需要更改,最好将该位置编码为单个变量它。如果是这样的话,你上面所做的事情是有道理的。但是,你不一定需要首先在.profile中这样做。显然,git会在运行脚本之前为您清理环境。所以,您应该改为使用包含参数的外部文件(尽管我反对使用.profile来反对)。