【20180617】python--repo:project类学习

有日子没更新了...Project类的实现略复杂和庞大因此看了好久,先整体总结一下。

1.概述

我们已经清楚repo借助xml的管理来实现批量git仓的操作,而这些操作又是通过封装git基础命令及底层命令来实现的,那么支撑这些git基础命令和底层命令封装实现的就是Project类,repo所有的子命令最终都会或多或少的调用Project类中的方法。

我们首先需要了解Project类的基本属性,然后按服务的不同子命令分别分析对应方法。

2.数据结构

project.py中定义了多个类,其中最重要的有三个:RepoHook、Project和MetaProject。

2.1 class RepoHook

 (用于定义和调用xml中配置的repohook仓内hook,注意不是为各个gir仓配置来自repo/hooks目录的hook,此功能参考Project类的_InitHooks方法)

  def __init__(self, hook_type,hooks_project, topdir,abort_if_user_denies=False)

  def Run(self, user_allows_all_hooks, **kwargs)

  def _ExecuteHook(self, **kwargs)

2.2 class Project

  def __init__(self,manifest,name,remote,gitdir,worktree,relpath,revisionExpr,revisionId)

  构造器方法中可以看到gitdir、worktree、work_git、bare_git、relpath等路径信息相关参数。

  def IsRebaseInProgress(self)  def IsDirty(self, consider_un

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值