Skip to content

Commit 9e23b48

Browse files
committed
New blog on Gitolite ADC.
1 parent 887cc4f commit 9e23b48

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

_posts/2011-11-30-05-gitolite-adc.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
layout: post
3+
title: "Gitolite 管理员自定义命令"
4+
---
5+
6+
管理员在服务器特定目录下保存一些可执行脚本,当执行类似下面的命令时,会自动调用相应的可执行脚本 `<command>`
7+
8+
$ ssh git@server <command> <args>...
9+
10+
注意这些脚本名称不要和 Gitolite 内置的命令重名,否则会覆盖 Gitolite 相应的内置命令,导致 Gitolite 无法正常运行。
11+
12+
在 Gitolite 源码的 `contrib/adc` 目录下维护了一些有用的管理员自定义命令,可以直接拿来使用。
13+
14+
* 管理员为自定义命令创建目录。
15+
16+
$ mkdir ~git/adc-bin
17+
18+
* 将 ADC 脚本拷贝到该目录中。
19+
20+
$ cp /path/to/gitolite/src/contrib/adc/* ~git/adc-bin/
21+
22+
* 修改 `.gitolite.rc` 配置文件,设定 `$GL_ADC_PATH` 变量。
23+
24+
$GL_ADC_PATH = "/home/git/adc-bin";
25+
26+
常用的管理员自定义命令。
27+
28+
* 解锁版本库。
29+
30+
版本库的创建者可以为版本库加锁和解锁。只有处于解锁状态的版本库才可以被删除。解锁版本库命令:
31+
32+
$ ssh git@server unlock name/of/repo.git
33+
34+
* 版本库加锁。
35+
36+
版本库的创建者可以为版本库加锁和解锁。新创建的通配符版本库默认处于锁定状态,处于锁定状态的版本库不能被删除。加锁版本库命令:
37+
38+
$ ssh git@server lock name/of/repo.git
39+
40+
* 删除版本库。
41+
42+
执行下面的命令会永久删除版本库。
43+
44+
$ ssh git@server rm name/of/repo.git
45+
46+
我对 ADC 脚本进行了定制,会将版本库移动到指定的目录下而不是直接删除。参见:[名为 `t/adc_enhanced` 的 Topgit 分支](https://github.com/ossxp-com/gitolite/commit/b6f4f020095a07be4b445d549c07f294f900ee27)
47+
48+
* 超级用户读取和设置他人创建的版本库授权。
49+
50+
默认只有版本库创建者才能为自己创建的版本库授权以及读取权限。名为 `su-getperms``su-setperms` 的 ADC 脚本可以让 Gitolite 管理员读取和设置他人创建的版本库授权。如:
51+
52+
$ ssh git@server su-getperms username name/of/repo.git
53+

0 commit comments

Comments
 (0)