repo代码简单解读

1. repo脚本是作为整个repo工具的入口,主要负责repo环境的初始化和克隆出repo库。repo有两端if __name==‘__main__': 位于开始部分主要是给shell执行用,就是把repo脚本当shell脚本跑,末尾的那段是给python执行用的。
    主方法:main
    a. 环境初始化   _FindRepo()
    找到repo脚本所在的目录,一般都是用户主目录下的bin目录中,寻找main.py文件
    b. 分析命令行参数  _ParseArguments()
    分析出哪些是命令,哪些是参数
    c. 本次执行涉及的脚本和目录是否存在 _RunSelf()
    主要查找git_config.py/project.py/subcmds
    d. 设定默认值
    c. 做repo的克隆或者更新 __Init()
    repo并不是做的克隆,而是先在本地创建一个空的repo库,然后设置注册远程库,最后做更新
 
2. main.py负责具体命令的执行,包括manifests库的克隆的检出。main.py的结构和repo脚本类似
    主方法: _Main
    1. ssh验证 gitconfig 用户名,邮箱地址 验证 init_ssh()
    2. 网络验证 init_http()
    3. 解析manifest.xml 没有指定的就是要默认名称
    4. 通过getattr 方式 执行命令 _Run() 根据命令的名称,执行subcmds下对应的文件。秘密就在subcmds/__init__.py文件里

转载于:https://www.cnblogs.com/douzhanshen/p/3228073.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值