我想,当我挖得更深的时候,医生们就有了答案。这是相当不错的@sitaramc。
-
如果没有选项,“gitolite setup”是一个常规的“fix-up-everything”命令。
(例如,如果你从外面带来了回购,或者有人搞砸了
使用钩子,或者对影响访问的rc文件进行了更改
规则等)
症状密钥停止传播并出错
FATAL: unknown git/gitolite command: 'info'
在
ssh git-user@ser-git
. 修复运行
gitolite setup
. 因此,在第一个问题上,标题1:
Gitolite安装修复了什么?
-
石英石装置
实施
here
-
我的Perl相当弱,但在
line 56
. 它调用args(它解析选项,所以这里没有要解析的内容),然后除非
h_only
(仅钩住arg用于安装),但没有使用,因此我们跳过
compile
和
POST_COMPILE
扣动扳机,抓住钩子。
子设置{
my($admin,$pubkey,$h_only,$message)=args();
unless ($h_only) {
setup_glrc();
setup_gladmin( $admin, $pubkey, $message );
_system("gitolite compile");
_system("gitolite trigger POST_COMPILE");
}
hook_repos(); # all of them, just to be sure
}
-
包裹
Gitolite::conf::store
有
hook_repos()
,
line 228
:我们将dir更改为repo base dir(根据配置文件),并对每个phy_repo进行更改。
hook_1(phy_repo)
. 什么是物理报告?
物理层
物理的。
-
相同的包装、不同的方法和线条:
hook_1($repo)
in line 354
.
方法
Hookg1(回购)
这完全是关于固定所有的钩子。
-
为公共和管理挂钩重新创建目录。
-
重写update-hook(common)和post-update-hook(admin)。
-
为公共挂钩和管理挂钩设置755权限。
-
然后使用
ln_sf
它将通用/管理挂钩的文件夹符号链接起来。
-
LNSF
在公共模块中,在
line 162