美文网首页
将展讯8541E代码添加到内网gerrit服务器

将展讯8541E代码添加到内网gerrit服务器

作者: DD_Dog | 来源:发表于2021-11-12 11:17 被阅读0次

    目的

    展讯发布代码后,可以下载工作区部分或者镜像,因为后面在做项目时要自己管理分支和代码提交,所以需要在自己的服务器上建立镜像。
    有两种方法:

    • 一:下载工作区部分(即代码),然后自己把每一个仓库提交到gerrit。Android不推荐,因为仓库有一千多个,太繁琐
    • 二:从展讯服务器下载镜像,镜像拷贝到公司服务器的git代码仓库路径下直接使用

    下面是我使用方法二的操作步骤

    一、首先从展讯服务器下载镜像到本地电脑

    如果条件允许的话,这一步骤也可以直接下载到gerrit,这样就省略步骤二

    下载镜像 [ instructions of downloading mirror ]
    
    $ mkdir workspace
    $ cd workspace
    
    # 使用SSH连接 / for ssh user
    $ repo init --repo-url ssh://username@git.unisoc.com:29418/tools/repo.git -u ssh://username@git.unisoc.com:29418/platform/cus-manifest -b username/master --mirror -m mirror.xml
    $ repo sync
    或者
    # 使用HTTPS连接 / for https user
    $ repo init --repo-url https://git.unisoc.com/gerrit/tools/repo.git -u https://git.unisoc.com/gerrit/platform/cus-manifest -b username/master --mirror -m mirror.xml
    $ repo sync
    

    二、将镜像拷贝到gerrit服务器

    我下载的镜像都放在了8541E目录下,现在把它拷贝到gerrit服务器

    scp -rf 8541E gerrit@192.168.1.153/home/flyscale/gerrit/review_site/git/android/platform/
    

    三、重建索引

    这一步是把拷贝过来的镜像添加到gerrit的数据仓库中,这样才能管理起来

    ./reivew_site/bin/gerrit.sh stop #重建索引前要停掉gerrit服务器
    #review_site是gerrit安装路径
    java -jar gerrit.war reindex -d review_site 
    ./reivew_site/bin/gerrit.sh start
    

    repo配置文件

    把展讯的配置文件修改后直接放到自己的manifest仓库中。
    修改点:

    • 1、gerrit服务器地址
    • 2、project路径
      下面贴出修改前和修改后的差异部分:

    修改前:

    <manifest>
      <remote fetch=".." name="korg" review="http://review.source.spreadtrum.com/gerrit/"/>
      <default revision="sprdroid10_trunk_19c_rls1_c1" remote="korg" sync-j="4"/>
    

    修改后:

     <manifest>
        <remote fetch="../../.." name="origin" review="http://192.168.1.153:81"/>
        <default revision="sprdroid10_trunk_19c_rls1_c1" remote="origin" sync-j="4"/>
    

    其它基本不用修改。正常情况下就可以从自己的服务器下载代码了。

    从公司服务器下载代码:

    $ repo init -u ssh://admin@192.168.1.153:29418/android/platform/9820e/manifest -m sprdroid10_trunk_19c_rls1_c1_flyscale.xml
    $repo sync
    

    遇到的问题

    一、分支问题

    实际分支为flyscale/ sprdroid10_trunk_19c_rls1_c1,但是maniest里面配置的是 sprdroid10_trunk_19c_rls1_c1,仍然能下载是什么原因?
    答:因为每个project配置了revision,依据提交id进行下载,如下:

    <project name="android/platform/8541e/platform/build/blueprint" path="build/blueprint" revision="8fd0c7f4d39d335886154    c0fe1eeb3a91e19f592" groups="pdk,tradefed" upstream="flyscale/sprdroid10_trunk_19c_rls1_c1"/>
    

    二、部分镜像不正确

    从展讯下载的镜像,有的仓库无法正常下载镜像,但是能正常下载工作区拷贝,怎么办?
    答:使用工作区拷贝推送到gerrit生成镜像

    三、历史提交超过10000

    提交次数超过10000的话无法提交以服务器,而这些提交对我们来说 没有用了,所以检出工作区代码,删掉.git目录,重新初始化

    相关文章

      网友评论

          本文标题:将展讯8541E代码添加到内网gerrit服务器

          本文链接:https://www.haomeiwen.com/subject/sfnnzltx.html