30.7.3 其他功能拓展和参考
Gitolite源码的doc目录包含用markdown标记语言编写的手册,可以直接在Github上查看。也可以使用markdown的文档编辑工具将.mkd文档转换为html文档。转换工具很多,有rdiscount、Bluefeather、Maruku、BlueCloth2,等等。
在这些参考文档中,用户可以发现Gitolite包含的更多的小功能或秘籍,包括:
版本库设置。
授权文件通过git config指令为版本库进行附加的设置。例如:
repo gitolite
config hooks.mailinglist=gitolite-commits@example.tld config hooks.emailprefix="[gitolite]"
config foo.bar=""
config foo.baz=
多级管理员授权。
可以为不同的版本库设定管理员,操作gitolite-admin库的部分授权文件。具体参考:doc/5-delegation.mkd。
自定义钩子脚本。
因为Gitolite占用了几个钩子脚本,如果需要对同名钩子进行扩展,Gitolite提供了级联的钩子脚本,将定制放在级联的钩子脚本里。
例如:通过自定义gitolite-admin的post-update.secondary脚本,以实现无须登录服务器即可更改.gitolite.rc文件。具体参考:doc/shell-games.mkd。
关于钩子脚本的创建和维护,具体参考:doc/hook-propagation.mkd。
管理员自定义命令。
通过设置配置文件中的$GL_ADC_PATH变量,在远程执行该目录下的可执行脚本,如:rmrepo。
具体参考:doc/admin-defned-commands.mkd。
创建匿名的SSH认证。
允许匿名用户访问Gitolite提供的Git服务。即建立一个和Gitolite服务器端账号同ID同主目录的用户,设置其的特定shell,并且允许口令为空。
具体参考:doc/mob-branches.mkd。
可以通过名为@all的版本库进行全局的授权。
但是不能在@all版本库中对@all用户组进行授权。
版本库或用户非常之多(几千个)的时候,需要使用大配置文件模式。
因为Gitolite的授权文件要先编译才能生效,而编译文件的大小是和用户及版本库数量的乘积成正比的。选择大配置文件模式则不对用户组和版本库组进行扩展。
具体参考:doc/big-config.mkd。
授权文件支持包含语句,可以将授权文件分成多个独立的单元。
执行外部命令,如rsync。
Subversion版本库支持。
如果在同一个服务器上以svn+ssh方式运行Subversion服务器,可以使用同一套公钥,同时为用户提供Git和Subversion服务。
HTTP口令文件维护。通过名为htpasswd的SSH子命令实现。