对于使用 gitolite 的人来说,这是一个相当普遍的需求,当不是一个非常高级的用户时(至少对我来说),似乎有点难以解决松散的问题。
来回跟踪 stackoverflow 和 gitolite 的链接可能有点令人困惑。这些是我的结论,也是我为实现这一目标所遵循的路径。
正如@VonC 提到的那样,自3.5.3.1 版(github 链接)以来,已经可以创建特定于存储库的钩子
更新/升级 Gitolite
您应该做的第一件事是更新您的 gitolite 存储库。因此,SSH/home/git/gitolite
进入托管 gitolite 的服务器,并以git 用户(通常)身份移动到安装 gitolite 的位置(通常git
)
例子:
$ ssh myusername@devserver.com
$ sudo su - git
$ pwd
/home/git
$ cd gitolite
然后我们必须升级 gitolite。为此,首先我们需要更新 gitolite 存储库
$ git pull
然后我们必须重复安装命令(确保使用与以前相同的参数)
$ ./install
最后再次运行设置。
$ gitolite setup
如果这不起作用,您可能还没有在您的 中设置 gitolite 可执行文件PATH
,因此您可以执行以下操作:
$ src/gitolite 设置
Gitolite 设置(“RC”文件)
这是最让我困惑的部分之一,但最终它非常简单。
著名的“rc”文件位于 git 的主目录/home/git/.gitolite.rc
。确保您有一个名为 的变量LOCAL_CODE
,您应该在该文件上看到类似这样的内容,如果没有,请添加它。
LOCAL_CODE => "$ENV{HOME}/.gitolite/local"
在“命令启用功能”部分中,您应该确保它repo-specific-hooks
可用,如果没有,请添加它。
ENABLE => [
# COMMANDS
# These are the commands enabled by default
'help',
'desc',
'info',
...,
...,
...,
'repo-specific-hooks'
...,
...,
...
]
这是文档的链接
编写存储库特定的钩子
最后,在您的本地 存储库中,在您刚刚在变量中设置的目录下gitolite-admin
创建以下目录,例如:hooks/repo-specific
LOCAL_CODE
gitolite_admin/local/hooks/repo-specific
之后,您实际上可以将钩子脚本添加到该位置并通过文档中所述的 gitolite conf 文件管理它们。确保脚本是可执行的。
repo foo
RW+ = @all
option hook.post-receive = deploy
再次,我希望这对你们中的一些人有所帮助。
干杯!