• repo 获取各个库的tag代码或者分支代码


    关于mainfest.xml中的参数格式和说明,可以自己查阅,此处不详细写,我们知道project中的reversion可以指定分支,tag,commitid等,那么如何书写呢?

    首先克隆mainfest仓库,并切换到要工作分支,比如我的分支是develop

          git clone ssh://gerrit@192.168.8.250:29418/phoenix/manifest

          cd mainfest.xml 

    然后按照如下分类参考修改default.xml

    (1)分支:reversion可以直接写分支的名字,如下:

                   <project path="SDK/upnp" revision="develop" name="test/upnp"/>

                   <project path="SDK/base" revision="master" name="test/base"/>

             注意:

                  修改完后提交改动到gerrit: git add default.xml; git commit -m "modify default.xml";git push origin HEAD:refs/for/develop 

    repo命令获取分支代码

                    可以使用-b 指定分支,即 repo init -u gerrit:phoenix/manifest -b develop 

                        然后执行repo sync -j4 检出或者同步代码

      (2) tag:不能直接就写一个tag名字,要加前缀refs/tags/,如下:

                 <project path="SDK" revision="refs/tags/tag_r60008_18214" name="test/SDK"/>  

                 <project path="SDK/base" revision="refs/tags/tag_r60008_18214" name="test/base"/>

          注意:

                  revision是tag的时候,一定要加前缀:refs/tags/

                  修改完后提交改动到gerrit: git add default.xml; git commit -m "modify default.xml";git push origin HEAD:refs/for/develop 

                 并标记tag,比如tag_r60008_18214,推tag 到gerrit上。

         repo命令获取分支代码:

               repo init -u gerrit:phoenix/manifest -b refs/tags/tag_r60008_18214

                         然后执行repo sync -j4 检出或者同步代码

    如上中的“repo init -u gerrit:”的“gerrit”的设置可以参考https://www.cnblogs.com/zndxall/p/10007755.html中的配置

    repo start命令创建的分支是基于mainfest.xml 中的revision来在本地创建新分支。

    (3)repo切换分支

    操作完repo sync -j4后,执行repo branches, 会看到显示 no branch ,这时如果想让代码切换到你想要的分支,需要执行repo forall 命令

    (1)比如要把所有仓库都切换到develop分支,可以执行:repo forall -c git checkout develop

    (2)比如只需要切换某个分支到develop分支,需要执行:repo forall  [project]  -c git checkout develop

         这里的project 需要采用repo forall -c pwd 获取,然后用显示的工程路径替换[project],

        比如我执行了repo forall -c pwd 显示如下:

                   

         我想只想切换AndroidReceiver到develop分支下,那么我只要执行:

         repo forall  /root/src/workspace/my_repo/phoenix/AndroidReceiver -c git checkout develop 即可。

  • 相关阅读:
    AQS的子类在各个同步工具类中的使用情况
    SpringBoot RabbitMQ 延迟队列代码实现
    Java线程状态、线程start方法源码、多线程、Java线程池、如何停止一个线程
    Java内存模型,为啥线程要有自己的本地内存,CPU高速缓存
    Java内存模型中volatile关键字的作用
    Java内存模型、JVM内存结构和Java对象模型
    搞定springboot项目连接远程服务器上kafka遇到的坑以及完整的例子
    MongoDB导出与导入远程Linux服务器上的数据
    DeferredResult使用方式和场景
    【IT笔试面试题整理】二叉树中和为某一值的路径--从根到叶子节点
  • 原文地址:https://www.cnblogs.com/zndxall/p/10007744.html
Copyright © 2020-2023  润新知