时时彩网站 - 时时彩玩法 - 重庆时时彩时时彩网站 -

时时彩网站 - 时时彩玩法 - 重庆时时彩时时彩网站

当前位置: 主页 > 举报玩家 > Repo介绍

Repo介绍

时间:2018-07-19来源:网络整理 作者:admin点击:

请尊敬原件版权,重印训示挖出。

视野本文先于,使负债务对GIT有必然的听说。。

repo它是安卓功绩的Python本子,便于应用。。repo的涌现,不撤职Git,这是为了让Android显像剂胜过地应用Git。。

Android源加密容纳数百个Git库,下载这么多话Git库是任一沉重的交给某人。,因而当你下载源加密时,Android就引入了repo。 Android学术权威打扮下载repo的方法是经过Linux curl命令,下载后,为repo本子添加可抬出去性政权:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

中国1971谷歌乘客名额有限制的爆发,因而上面的命令不用然是下载的。。实则,咱们当今的可以从很多第三方运河找到repo本子,把它拿下降,确保repo可以右方的抬出去那就够了。


repo需求关怀现在时的git库的全部效果、称呼、路程等,用这些基本要旨,这些Git库可以被操纵。经过集中保卫一切的GIT库的列表,repo可以手边的的从清单中获取git库的要旨。 这样的地列表将跟随版本的功绩而塑造。,对专用化意指或意味也若干风土性的改变。,因而,repo是经过Git库来应用一件商品的清单锉刀的,Git库的称呼高的manifests

当翻开repo这样的地可抬出去性的python本子后,找到的加密量难得(不超过1000行),这样的地本子是否达到了AOS中数百个Git库的应用。 repo是丰满的本子的集中,这些本子也经过Git库来保卫。,Git库的称呼高的repo

在客户端应用repo设定初值独自一件商品时,它将是冷淡的的manifestsrepo这两个Git库被复印到外地的。,但这是Android显像剂的,差一点失踪(普通经过锉刀应用器),不能相信的瞥见两个Git库。。 repo将自动化的应用要旨都兽皮根目录册的.repo子目录册表中。

AGSP一件商品清单GIT库,不料独自锉刀,它是独自直立支柱的XML,代理了现在时的repo应用的一切的要旨。AOSP锉刀的心甘情愿的如次:

name="aosp"fetch=".."review=""/>revision="master"remote="aosp"sync-j="4"/>path="build"name="platform/build"groups="pdk,tradefed">src="core/"dest="Makefile"/>path="abi/cpp"name="platform/abi/cpp"groups="pdk"/>path="art"name="platform/art"groups="pdk"/>
    ...
path="tools/studio/translation"name="platform/tools/studio/translation"groups="notdefault,tools"/>path="tools/swt"name="platform/tools/swt"groups="notdefault,tools"/>
  • :代理长途仓库栈的基本要旨。。称呼代理长途仓库栈的称呼。,咱们通常瞥见的名字是原点,代替的是FETCH。,它用于构造一件商品仓库栈的长途地址; 审察维修服务性的地址

  • :默许)技术援助委下定义的属性,将用作)技术援助委的默许属性,在在)技术援助委中,还可以重写这些属性。。属性惩戒表现现在时的版本。,执意说,咱们通常称为排水渠;属性长途代理DeFA。,即在跺脚击中要害称呼的属性值;属性Syc J训示在那时,被附加交给某人的全部效果,高配备的机具可以扩大这样的地值。

  • :每独自repo应用Git库,那执意对应独自。)技术援助委,路程代理一件商品对立于长途仓库栈URL的路程。,同时将用作对应Git库在外地的加密的路程; 称呼用于下定义一件商品的称呼,命名方法是完全的一件商品URL的对立地址。。 诸如,AOSP一件商品的URL是,命名为platform/buildGit库,已爆发的URL是平台/构造

是否需求添加或掉换相当Git库,可经过改变取得,repo会理由配备要旨,自动化应用。但导演成双专用化,它可能性通向一件商品列表的再更新的信息。,与长途冲。 终于,repo供给了独自种更为活泼的专用化方法local_manifests一切的专用化依照直立支柱,锉刀名可以自下定义。,诸如,外地的, another_local_等, 将专用化的XML放在新建的.repo/local_manifests子目录册表那就够了。repo会遍历.repo/local_manifests目录册下的一切的*.xml锉刀,终极合到独自完全的一件商品列表锉刀中。

LoalAll清单改变的示诸如次:

$ls .repo/local_manifests
local_
another_local_

$cat .repo/local_manifests/local_
        

repo对git命令举行了封装,供给了一套repo的命令集(包罗init, 使时期互相划一等。,一切的repo应用的自动化取得也都容纳在这样的地git库中。 在优先设定初值时,repo会从长途把这样的地git库下载到外地的。

仓库栈目录册容纳历史要旨和惩戒记载。,任务目录册禁猎地的是现在时的版本的要旨。普通来说,一件商品的Git内存库目录册(默许是.git目录册)是,话虽这样的说Git支撑物独自一件商品的Git内存库和任务的独自内存。。 在附近的repo应用说起,有独自的内存器,它也内在任务目录册中。

  • manifests: 仓库栈目录册有两份。,一份坐落任务目录册(.repo/manifests)的.git目录册下,另一份孤独寄存品于.repo/

  • repo:仓库栈目录册坐落任务目录册(.repo/repo)的.git目录册下

  • project:应用的GIT库的一切的仓库栈目录册都被独自禁猎地。,坐落.repo/projects目录册下。同时,它还将阻止任务目录册的.git。,但外面一切的的锉刀都是到.repo的相干。这样的,亦即划分做内存,它还与任务目录册击中要害一切的Git命令协调的。。

既然.repo目录册下禁猎地了一件商品的一切的要旨,当独自一件商品被复印时,只需求复印这样的地目录册。。repo支撑物从外地的已相当多的.repo中回复原相当多的一件商品。


repo命令的应用体式如次所示:

$ repo  

可选的。:help、init、sync、upload、diff、download、forall、prune、start、status,每个命令都有国事的的事件。, 当今的让咱们简略引见一下这些命令。:

$ repo init -u  []
  • -u:委派清单的长途Git库的URL,清单库是完全的一件商品的列表。默许养护,Git库只容纳独自锉刀,这点的心甘情愿的可以从Android的范本中瞥见。

  • -m, –manifest-name:在需求的清单库中委派列表锉刀。默许养护下,表现形式的应用

  • -b, –manifest-branch:委派锉刀的版本,,这执意东窗事发的排水渠。

运转命令后,会在现在时的目录册下新建独自.repo子目录册表:

.repo
├── manifests       # Git库,容纳锉刀,用于代理repo所应用Git库的要旨
├──    # 清单GIT库的在,manifest/.git目录册下的一切的锉刀大城市相干到该目录册
├──     # 清单的软相干
└── repo            # Git库,容纳repo运转的一切的本子

这些外地的的目录册是到何种地步达到的呢?抬出去repo命令时,可以经过--trace参量,看一眼发作了什么。

$ repo --trace init -u$URL-b$BRANCH-m$MANIFEST  --------------------
  mkdir .repo;cd .repo
  git clone --bare $URL 
  git clone tools/repo
  mkdir -p manifests/.git;cd manifests/.git
  for i in ../..//*;do ln -s .;done  cd ..
  git checkout $BRANCH --.  cd ..
  ln -s manifests/$MANIFEST 

率先,在现在时的目录册下准备.repo子目录册表,后续一切的的操纵都在.repo子目录册表下达到;

和,复制两个GIT库,内侧的独自是-u参量委派清单,外地的git库的称呼是另独自是默许的repo,嗣后咱们将瞥见这样的地URL也可以由参量委派。

经营,准备了清单/git目录册,它击中要害一切的锉刀都相干到这样的地目录册。,这是为了便于在清单DI上抬出去Git命令。,紧经营,清单将被切换到-b由参量委派的排水渠

最终的,在.repo目录册下,准备软相干,相干到-m参量处方一览表的列表锉刀,默许为清单。

这样的,独自多Git库的设定初值先前达到。,后来地,就可以抬出去休息的repo命令了。

咱们还引见了相当不经用的参量。,在中国1971下载安卓源时,它将被应用:

  • –repo-url:委派长途repo库的URL,默许养护是tools/repo,但国际对谷歌的爆发是乘客名额有限制的的,它将通向这样的地库被下载。,在那附近通向repo 设定初值忘记,因而经过这样的地参量是可能性的委派独自爆发不向上跳的repo地址

  • –repo-branch:与清单Git库同卵双胞,repo这样的地git库亦有版本不符合的,经过这样的地参量是可能性的来委派下载repo这样的地长途git库的考虑到排水渠

  • –no-repo-verify:鄙人载repo库时,会对repo的源码举行反省。经过–repo-url委派第三方repo库时,这可能性通向将一军不经过。,因而它可以用来应用这样的地参量,迫使不举行反省

$ repo sync [PROJECT_LIST]

下载长途加密,并将外地的加密更新的信息为最新,这样的地行动方向高的使时期互相划一。。是否不应用参量,这么会对一切的repo应用的举行使时期互相划一操纵;也可以PROJECT_LIST参量,委派要使时期互相划一的一件商品全部效果。 与外地的GIT库加密特色,使时期互相划一操纵有特色的行动:

  • 当外地的Git库是优先裂开使时期互相划一操纵时,这么,这样的地命令相当于git clone,长途Git库将导演复印到外地的。

  • 当使时期互相划一操纵已在外地的裂开时,这么,这样的地命令相当于git remote update && git rebase origin/现在时的长途排水渠与外地的排水渠相干。 加密合可以准备冲,当冲涌当今的,不料处理冲,和抬出去git rebase --continue那就够了。

当使时期互相划一命令已右方的抬出去时,外地的加密与长途加密划一。。在相当事件中,咱们它将被应用sync命令的相当参量:

  • -j:开式多线索使时期互相划一操纵,这将放慢使时期互相划一命令的抬出去周转率。。默许养护下,同时应用4个穿成串抬出去使时期互相划一

  • -c, –current-branch:仅使时期互相划一委派的长途排水渠。。默许养护下,使时期互相划一将使时期互相划一一切的长途排水渠,当长途排水渠更多,你下载的加密量很大。应用此参量,下载时期可以缩减,禁猎地外地的磁盘当空

  • -d, –detach:走出现在时的的分开排水渠机构,切换到中锋的排水渠集中。在现实操纵中,这样的地参量充分有用处。,当咱们优先达到使时期互相划一加密时,常常切换到DEV排水渠举行功绩。是否不应用此参量应用使时期互相划一, 它裂开外地的DEV排水渠与MANI设置的长途排水渠合。,这很可能性通向使时期互相划一忘记。

  • -f, –force-broken:当Git库使时期互相划一忘记时,不使不安完全的使时期互相划一操纵,持续使时期互相划一休息Git库

  • –no-clone-bundle:当向维修服务性的需求需求时,为了快速地解答反应周转率,它将被应用心甘情愿的豁免电网络(CDN, Content Delivery 电网络)。使时期互相划一操纵也将创立与近来的维修服务的衔接。, 应用HTTP/HTTPS的$URL/来设定初值外地的Git库,它究竟是独自长途Git库的镜像。,经过HTTP导演下载,这将胜过地使用电网络带宽。,放慢下载周转率。 当维修服务性的对下载的URL心不在焉右方的解答时,话虽这样的说Git又能罚款地任务,经过这样的地参量是可能性的,配备不下载$URL,相反,导演经过Git下载长途Git库

$ repo upload [PROJECT_LIST]

从字面意思,上载执意上载,将外地的加密上载到长途维修服务性的。上载命令率先查找自,和将达到这些更改以达到补丁锉刀。,上载至Gerrit维修服务性的。 是否未委派一件商品列表,和上载将发现物Git库击中要害一切的更改;是否是Git天秤,上载供给交互式的交界面,线索选择一些排水渠上载。。

upload并不能的导演将改动合后长途Git库,相反,咱们需求率先如愿以偿讲师的认可。。审读者检查更改心甘情愿的、决议是否称许轧加密的操纵,这一切都是经过格雷特达到的。 在清单中委派GeRIT维修服务性的的地址。:翻开.repo/,这样的地XML )技术援助委击中要害审读属性值是审读维修服务性的的URL。

name="aosp"fetch=".."review=""/>

GeRIT的取得机制并批评本文议论的心甘情愿的。,但有一些GeRIT互插总的印象,它需求经过送交职员的加密来变得流行。:

  • Reviewer:加密审读器可以是多个,它需求被人约定。GeRIT供给网页的操纵,你可以填写讲师。。当送交多个Git库时,为了废止在网页上频繁地选择讲师,这样的地反复, 上载供给–re, –reviewer参量,在命令行中委派一次审读者

  • Commit-ID:酬劳每个送交,送交ID的引见,这是SHA-1值,送交的将一军和,可以用来试验送交心甘情愿的的完整性

  • Change-ID:每个回顾交给某人的GRIT,更改ID的引见,每个送交都上载到GrIT,它们都对应于更改ID。, 为了区别送交ID,GeRIT在资本中设置更改ID“I” 打头的。 更改ID与送交ID批评一一对应的对应相干,每个送交ID与更改ID相干,话虽这样的说更改ID可以与多个送交ID互插系。

  • Patch-Set:现在时的审察需求的变奏。更改ID与多个送交ID互插系,这是补丁集。,当经过git commit --amend改变后的命令将在最终的一次送交并上载。, 送交ID已更改。,话虽这样的说你依然可以阻止变奏ID永恒的,这样的,在GrIT的原始审察交给某人下,将会有独自新的补丁集。号码次被符合公认准则的了,将涌现号码补丁集, 可以变得流行,不料最终的任一改变案才是咱们意指或意味的。,因而,在一切的补丁集,不料最新的才是真正有用处的。,可以合。

$ repo download  

上载是向GrIT送交更改,下载是从GrIT下载的。爱意上载,下载命令也与GeRIT一同应用。。

$ repo forall [PROJECT_LIST] -c 

对委派Git库抬出去-c参量按次。在应用多个GIT库时,这是独自充分国事的的命令。。一件商品列表以当空区别,诸如:

$ repo forall frameworks/base packages/apps/Mms -c"git status"

表现对platform/frameworks/baseplatform/packages/apps/Mms同时抬出去git status命令。 是否未委派一件商品列表,这么,会对repo应用的一切的git库都同时抬出去命令。

这样的地命令还若干休息的参量:

  • -r, –regex: 经过委派有规律的陈述,不料婚配的一件商品,抬出去委派的命令。

  • -p:输入总算中,誊写版印刷机一件商品称呼

$ repo prune []

停止委派的一件商品,合排水渠。当排水渠合到主干排水渠时,,这样的地功绩排水渠可以用这样的地命令停止。

跟随时期的发生,越来越多的开展排水渠将是,在多人功绩同Git库,多排水渠机构的开展越来越尖头,补助金现在时的Git库有以下排水渠:

* master
  dev_feature1_201501   # 并入主人
  dev_feature2_201502   # 并入主人
  dev_feature3_201503   # 在功绩中,也有记载的变奏,心不在焉合到主人

这么,为Git库应用修剪命令,会停止dev_feature1_201501和dev_feature2_201502。

下定义停止不怎么样的排水渠,有着队开展和应用实力的充其量的。修剪是停止不怎么样的排水渠的杀手锏。

$ repo start  []

就委派一件商品,切换到委派的排水渠。可以应用–all参量对一切的一件商品抬出去排水渠切换。。 命令究竟是右方的的git checkout命令的封装,这是实习,它将下列的清单中委派的排水渠称呼。。

当第独自使时期互相划一达到加密时,可以经过启动C将Git库切换到功绩排水渠。,废止在隐姓埋名排水渠上任务,通向心甘情愿的降低。。

$ repo status []

正式的用于检查多个Git库的正式的。究竟,是对git status命令的封装。


Android打扮的功绩行动方向:

  1. repo init设定初值工程,委派要下载的排水渠
  2. repo sync下载加密
  3. repo start将外地的Git库切换到功绩排水渠(发动的) 排水渠机构)
  4. 做局部的改变,将一军后,向外地送交
  5. repo upload上载到维修服务性的,等候审察

在现实应用行动方向中,咱们它将被应用repo的相当什么子命令和参量呢?孰参量有助于上涨功绩实力呢?上面咱们以相当现实事件为例投入阐明。

经过local_manifest机制,可废止导演改变,它不能的鄙人独自使时期互相划一长途列表锉刀中形成冲。。

氰化钼(CM)装有数百种译文。,特色机型所屈尊做某事Git库很可能性是有不符合的。以CM自下定义列表锉刀为例,经过添加局部的,心甘情愿的如次:

name="github"fetch="git://"/>name="platform/bootable/recovery"/>name="platform/external/yaffs2"/>name="platform/external/zlib"/>path="bootable/recovery"name="CyanogenMod/android_bootable_recovery"remote="github"revision=""/>path="external/yaffs2"name="CyanogenMod/android_external_yaffs2"remote="github"revision=""/>path="external/zlib"name="CyanogenMod/android_external_zlib"remote="github"revision=""/>path="external/busybox"name="CyanogenMod/android_external_busybox"remote="github"revision=""/>

LoalAll将合到现相当多的一件商品列表锉刀中。,取得了对相当git库的掉换和新增。 可以应用以下命令导出现在时的清单锉刀,最后结果是保险丝版:

$ repo manifest -o  -r

编辑前,禁猎地完全的一件商品的列表,成绩的回溯。当一件商品Git库发作变换,不得已回滚到先前的版本举行试验。,它只需求在前独自版本上重行设定初值。:

$ cp  .repo/manifests/
$ repo init -m            # -m 参量表现自下定义清单$ repo sync -d# -d 因为现在时的排水渠的参量表现,切换到清单中下定义的排水渠

在repo 设定初值时期,会从长途下载manifests和repo这两个git库,默许养护下,这两个git库的地址都是写死在repo这样的地python本子外面的。在附近的AOSP,两个GIT库的地址显然是由谷歌供给的。。 但鉴于爆发谷歌乘客名额有限制的,它会通向init,无法下载manifests和repo。这时候,可以应用init-u–repo-url参量,自下定义两个库的地址,辅以–no-repo-verify使变换加密反省。

$ repo init --repo-url[PATH/TO/REPO] -u[PATH/TO/MANIFEST] -b[排水渠机构 --no-repo-verify$ repo sync

repo默许会使时期互相划一git库的一切的长途排水渠的加密,但在现实开展的行动方向中,所应用的排水渠是乘客名额有限制的的。。应用sync-c参量,不料下载清单中设置的排水渠,这节省了加密下载时期和外地的磁盘当空。:

$ repo sync -c

是否现实功绩行动方向,你需求应用另独自排水渠,不愿被休息树枝使不安,它可以存符合现相当多的工程根目录册中。,应用以下命令:

$ repo manifest -o  -r$ repo init -u[PATH/TO/MANIFEST] -b[ANOTHER_排水渠机构
$ repo sync -c-d

以上所述命令序列,它是相当尖头的更新的信息,和下载另独自排水渠加密,此外地的仅禁猎地加密的两个排水渠。。应用禁猎地,它还可以手边的地将一切的Git库切换回刚才的排水渠。。

是否先前有独自Android源的拷贝,补助金路程是~/Android ExcSt,想下载另独自新的Android源码,经过–reference参量,几分钟内部,你可以下载加密:

$ mkdir ~/android-new &&cd ~/android-new
$ repo init --reference=~/android-exsit -u[PATH/TO/MANIFEST] -b[排水渠机构
$ repo sync -c

在使时期互相划一达到加密后来地,默许养护下,一切的Git库都在隐姓埋名排水渠上 排水渠机构),鉴于误操纵,轻易形成降低的加密改变。。可以应用以下命令将一切的Git库切换到功绩排水渠:

$ repo start BRANCH --all

显像剂可能性同时做多个Git库中。,更多排水渠,同时改变,不料为每个Git库送交加密是有趣的。。可以应用以下命令,将一切的更改送交到一同:

$ repo upload

你不用害怕送交或送交它。,上载供给交互式的交界面,功绩人员选择需求送交Git库和排水渠那就够了。

是否您需求将审读者禁猎地在GeRIT上,可以应用–reviewer审读者的邮箱地址由参量委派。:

$ repo upload --reviewer=""

Git鼓动Bug的整修或新特点的功绩,准备新的排水渠。准备GIT排水渠的本钱充分小。,并且周转率很快,终于,不要害怕准备GIT排水渠的本钱,不要尽量性多地应用树枝。

跟随时期的发生,越来越多的开展排水渠将是,合到梗概的相当功绩排水渠是不在的。,可以经过修剪C按期停止不怎么样的的功绩排水渠。:

$ repo prune [PROJECT_LIST]

在附近的相当功绩人员,同时操纵多个GIT库是经常地的。,是否每个Git库的操纵命令是同卵双胞的,,这么可以应用以下命令使用后随即抛掉的东西达到一切的操纵:

$ repo forall -c"git branch | grep tmp | xargs git branch -D; git branch"

参量-c委派的命令序列可能性充分复杂。,多个命令只需求应用;空隙。。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关内容
推荐内容