【发布时间】:2012-09-04 19:53:03
【问题描述】:
我会在 git 存储库中安装一个接收后挂钩,以构建模块并将其安装到一些自定义测试区域。这个想法是测试区域将始终反映 repo 中的最新代码。
钩子会:
- 克隆/拉取代码到 tmp 空间
- 构建模块
- 将模块安装到测试区
开发人员通过 gitosis 通过 SSH 连接到 repo。有什么方法可以让用户在推送数据后断开连接,这样他们就不需要为构建而留下来?
我尝试过这样的事情:
install(){
unset GIT_DIR
BARE_PATH=$PWD
REPO_BASENAME=$(basename "$BARE_PATH")
REPO_BASENAME=${BARE_PATH%.git}
cd /my/scratch/space/
if [ ! -d $REPOSITORY_BASENAME ] ; then
git clone file://$BARE_PATH
fi
cd $REPO_BASENAME
git pull
./install.sh
}
install &
这并不完全做到这一点。在上面的钩子中,直到install 完成后它才会退出。有什么方法可以让钩子在安装完成前退出?
【问题讨论】: