File tree Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments