社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

LIttle Ancient Forest Kami

LIttle Ancient Forest Kami 最近创建的主题
LIttle Ancient Forest Kami 最近回复了
5 年前
回复了 LIttle Ancient Forest Kami 创建的主题 » Gitolite安装修复了什么?

我想,当我挖得更深的时候,医生们就有了答案。这是相当不错的@sitaramc。

  • 如果没有选项,“gitolite setup”是一个常规的“fix-up-everything”命令。 (例如,如果你从外面带来了回购,或者有人搞砸了 使用钩子,或者对影响访问的rc文件进行了更改 规则等)

症状密钥停止传播并出错 FATAL: unknown git/gitolite command: 'info' ssh git-user@ser-git . 修复运行 gitolite setup . 因此,在第一个问题上,标题1:

Gitolite安装修复了什么?

  1. 石英石装置 实施 here
  2. 我的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
    

    }

  3. 包裹 Gitolite::conf::store hook_repos() , line 228 :我们将dir更改为repo base dir(根据配置文件),并对每个phy_repo进行更改。 hook_1(phy_repo) . 什么是物理报告? 物理层 物理的。

  4. 相同的包装、不同的方法和线条: hook_1($repo) in line 354 .

方法 Hookg1(回购)

这完全是关于固定所有的钩子。

  1. 为公共和管理挂钩重新创建目录。
  2. 重写update-hook(common)和post-update-hook(admin)。
  3. 为公共挂钩和管理挂钩设置755权限。
  4. 然后使用 ln_sf 它将通用/管理挂钩的文件夹符号链接起来。
  5. LNSF 在公共模块中,在 line 162