Gitolite
跳转到导航
跳转到搜索
注意:本页面讲的是 Gitolite 3.x 版本。
安装
gitolite setup -pk admin.pub
其中 admin 是新创建的管理者名字。
配置
配置文件位于 ~/.gitolite.rc。
LOCAL_CODE- 指定本地脚本路径。[1]
仓库特定 hook
要求版本 3.4 及以上。
在配置的 ENABLE 数组里,启用 repo-specific-hooks。[2]
将可执行文件放到 $rc{LOCAL_CODE}/hooks/repo-specific 目录下(并确保有执行权限)。
在管理仓库里配置仓库所使用的 hook。hook 名即可执行文件相对于 $rc{LOCAL_CODE} 的路径:
option hook.post-receive = deploy
注意,只支持 pre-receive、post-receive、post-update 三种 hook。可修改 triggers/repo-specific-hooks 来允许更多种类的 hook。
触发器
在配置文件中以触发器名为键、可执行文件部分路径的列表为值来配置,[3]如:
%RC = (
# ...
POST_CREATE => [
'on-repo-init',
],
# ...
);
可执行文件可位于$rc{LOCAL_CODE}/triggers下。
POST_CREATE脚本返回值没有作用。
环境变量
可在配置文件中为 Gitolite hook 和 trigger 设置环境变量,如:
$ENV{PATH} = "/usr/local/bin:$ENV{PATH}";
Gitolite 设置的PATH环境变量是非常基本的(没有读取任何 profile),添加了 git-core 目录。
GL_REPO_BASE- 仓库所在目录,如
~/repositories
命令
获取仓库所在的目录:
gitolite query-rc GL_REPO_BASE
获取仓库配置项(在 admin 仓库中的):
gitolite git-config $repo gitolite-options.my.option
被调用的可执行文件
gitolite 调用 git 命令时要注意:
- unset 掉
GIT_DIR环境变量 - 配置用户信息,如:
git config user.email || git config user.email "git@local"
git config user.name || git config user.name "git"
- git 1.8 之后需要设置
push.default选项
min_ver=1.8
cur_ver=$(git --version | awk '{print $NF}')
if [[ $(sort -V <<<"$min_ver"$'\n'"$cur_ver") == "$min_ver"$'\n'"$cur_ver" ]]; then
git config push.default || git config push.default simple
fi