Repo代码仓库搭建

news2024/11/27 5:34:26

使用rockchip sdk二次开发,代码十几个G,都放在一个git仓库的话,每次git status要等好久,决定拆分一下,官方是用repo做代码管理的,我打算也搭建个类似开发环境。

1.首先在git服务器上创建一个manifest仓库,按照官方manifest规范配置自己用到的项目仓库。这里我创建了3个配置,一个是常用来编译发布镜像的;一个是编译调试内核和uboot的;还有一个是下载完整SDK的,这个基本上用不上,只是给SDK做了个备份。

2.把SDK每个子目录建成一个单独仓库上传到git服务器。有些仓库我做了分支,比如prebuilts里面的工具链我只用到了aarch64版本,没有必要全部同步到本地。有些仓库只是子目录的一部分,比如buildroot/support。我的项目用的是自己做好的ubuntu20,不需要buildroot全部代码,但是编译镜像的时候依赖他们。

3.使用repo命令同步自己仓库。编译的时候发现还是有问题,recovery.img、oem.img和userdat.img生成还是需要编译buildroot。自己动手改了一下device/rockchip/common/script目录下的编译脚本,删除这部分依赖。

4.repo命令每次init的时候总是去google下载最新版本,没有代理容易卡死报错,我自己封装了一层附上脚本代码:

#!/bin/bash

ROOT_DIR=`pwd`
MENIFEST_FILE="default.xml"
REPO_FILE=$HOME/.repo/repo

function usage()
{
    echo " "
    echo "usage: repo fpad [menifest.xml] [fpad_dir]"
    echo " "
    echo "******************* or *******************"
    echo " "
    which repo > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        repo --help
    fi
}

function download_repo()
{
    
    if [ -e $REPO_FILE ]; then
        rm $REPO_FILE
    fi
    
    if [ ! -e $HOME/.repo ]; then
        mkdir $HOME/.repo
    fi

    curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o $REPO_FILE
    sed -i "s/\#\!\/usr\/bin\/env python$/\#\!\/usr\/bin\/env python3/g" $REPO_FILE
    chmod +x $REPO_FILE
}

function replace_repo()
{
    local NEW_REPO=$1
    
    if [ -e $REPO_FILE ]; then
        rm $REPO_FILE
    fi
    
    echo "release repo from $NEW_REPO"
    cp $NEW_REPO $REPO_FILE
    sed -i "s/\#\!\/usr\/bin\/env python$/\#\!\/usr\/bin\/env python3/g" $REPO_FILE
    chmod +x $REPO_FILE
}

function download_project()
{
    local DOWNLOAD_DIR=$1
    if [ -e $DOWNLOAD_DIR -a $ROOT_DIR != $DOWNLOAD_DIR ]; then
        echo "remove old project repo: $DOWNLOAD_DIR"
        rm -rf $DOWNLOAD_DIR
    fi
    
    if [ ! -e $DOWNLOAD_DIR ]; then
        mkdir -p $DOWNLOAD_DIR
        cd $DOWNLOAD_DIR
    fi
    
    echo "start to sync repo to $DOWNLOAD_DIR ... ..."
    repo init -u ssh://git@gitee.com/rk3588/manifest.git -m $MENIFEST_FILE
    replace_repo $DOWNLOAD_DIR/.repo/repo/repo
    repo sync -c
    repo start main --all 
}

if [ $# -lt 1 ]; then
    echo "too few args."
    usage
    exit 1;
fi

if [ ! -e $REPO_FILE ]; then
    echo "downlaod repo command file."
    download_repo
fi

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
export PATH=$HOME/.repo/:$PATH

if [ $1 == "project" ]; then
    case $# in
    1)
        download_project $ROOT_DIR
    ;;
    2)
        MENIFEST_FILE="$2.xml"
        echo "manifest file: $MENIFEST_FILE"
        download_project $ROOT_DIR
    ;;
    3)
        MENIFEST_FILE="$2.xml"
        download_project $3
    ;;
    *)
        echo "too many args."
        usage
        exit 1;
    ;;
    esac
else
    repo $@
    if [ $1 == "init" -a -e .repo/repo/repo ];then
        replace_repo .repo/repo/repo
    fi
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1320662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习中常见的激活函数

前文介绍 我们在前面了解到了线性回归模型,其实我们可以把线性回归看成一个单个的神经元,它实际上就完成了两个步骤 1.对输入的特征的加权求和 2.将结果通过传递函数(或者激活函数)输出 这里我们提到了传递函数(或者…

ESP32 核心转储闪存配置已损坏

问题描述:使用Platform 开发ESP32-S3 报错通过串口打印报错提示为核心闪存损失具体报错如下。 ELF file SHA256: 25c739c3d81d8f15 E (183) esp_core_dump_flash: Core dump flash config is corrupted! CRC0x7bd5c66f instead of 0x0 Rebooting... ESP-ROM:esp32s3…

如何去“面试”软件测试工程师?

站在用人单位的角度问这个问题,但是相信很多人搜到这个问题,目的是为了知道如何准备面试,以便拿到软件测试工程师的Offfer(所以我会更多站在求职者的角度去解答这个问题)。 但我们要清楚,找工作是出卖服务…

可能是全网最详细的线性回归原理讲解!!!

ps:此处的特征向量有别于线性代数中的特征向量,准确来讲这里的特征向量是一个样本的所有属性值。 用梯度下降慢慢逼近这个最小值点 本文图片来源于可能是全网最详细的线性回归原理讲解!!!_哔哩哔哩_bilibili 可以结合…

汽车火花塞行业分析:全球市场需求量约为26.3亿个

在汽车日常保养里,更换火花塞算是比较常见的一种,爱车懂车的车主们都非常清楚火花塞对于汽车的重要性,可以说火花塞直接影响到发动机的运作,决定了汽车能否顺利启程。 火花塞(sparkplug),俗称火咀,它的作用是把高压导线(火嘴线)送来的脉冲高压电放电&…

使用kali进行抓包以及aircrack-ng跑包和hashcat跑包

文章目录 一、连接无线网卡二、抓取TCP握手包三、aircrack-ng跑包和hashcat跑包1.aircrack2.Hashcat 四、其他 环境: VMware Workstation 16 Pro kali-linux-2023.1 64位 python3.9.13 RT3070-USB无线网卡 一、连接无线网卡 1.首先按下winr打开运行窗口 2.输入…

Nginx-nginx-1.18.0编译时默认包含哪些模块?nginx-1.18.0有哪些模块和配置语句,各有什么作用?

自己写的与Nginx有关的几篇重量级博文 详情请参见链接 https://blog.csdn.net/wenhao_ir/article/details/135023881 目录 01-如何查看 Nginx-nginx-1.18.0编译时默认包含哪些模块?02-如何查看Nginx有哪些自己可以手动设置添加或不添加的模块03-各配置语句和模块功能…

mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::......

现象:⬇️ 描述:执行 SQL 没问题,应用代码报错 ⬇️ .mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::SELECT voucherNo FROM voucher ORDER BY CAST(SUBSTRING(voucherNo FROM LOCATE(_, voucherNo) 1) AS U…

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 ➕ 安装ubuntu虚拟机图形化 ➕ 解决MacOs主机和WmwareFusion/UTM 之间不能复制粘贴问题

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 ➕ 安装ubuntu虚拟机图形化 ➕ 解决MacOs主机和WmwareFusion/UTM 之间不能复制粘贴问题 1. 前言1.1 系统说明1.2 Linux系统选择——提前避坑1.3 下载vmware_fusion1.3.1 官网下载1.3.2 注册 CAPTCHA验证码问题1.3.3 产品说明 1.…

【零基础入门Python】制作的简单计算器程序

✍面向读者:所有人 ✍所属专栏:零基础入门Pythonhttps://blog.csdn.net/arthas777/category_12455877.html 制作简单计算器的Python程序 制作GUI计算器的Python程序 时间复杂性: 空间复杂性: 在这里,我们将制作一个…

2024年手把手教CleanMyMac X v4.14.6破解版安装激活图文教程

小编给您带来CleanMyMac X v4.14.6中文破解版,CleanMyMac X破解版是应用在MacOS上的一款Mac系统清理优化工具,使用cleanmymac x 中文破解版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉,节省宝贵的磁盘空间。 CleanMyMac…

【C语言】cache和程序访问的局部性对程序性能的影响

文章目录 1.源程序比较其性能影响2.内存分配(1)静态存储区(static):(2)栈区(stack):(3)堆区(heap&…

如何做搜索?如何做搜索优化?如何在搜索领域快速成长?

三年多的搜索研发经历,万亿级集群管理经历,集群优化搜索优化经历。将生产环境的集群,检索性能提升了数十倍。也遇到过大大小小的生产事故。在工作中有幸能够得到前谷歌中国首席架构陈老师的指导。在搜索方面,自己也积累了蛮多的经…

大模型专业术语语料如何采集!XPath高级技巧助力狩猎

最近采集大模型的某领域的专业术语语料&#xff0c;却发现一些网站的专业术语和名称解释深藏在一个 <div> 节点下的多个同级 <p> 节点中。这样的结构让爬虫在使用 .//text() 后获取文本时变得十分头疼&#xff0c;难以准确区分是术语还是解释。&#x1f613;。 不…

Backtrader 文档学习-Platform Concepts

Backtrader 文档学习-Platform Concepts 1.开始之前 导入backtrader &#xff0c;以及backtrader 的指示器、数据反馈的模块 。 import backtrader as bt import backtrader.indicators as btind import backtrader.feeds as btfeeds看看btind模块下有什么方法和属性&#x…

redis之五种基本数据类型

redis存储任何类型的数据都是以key-value形式保存&#xff0c;并且所有的key都是字符串&#xff0c;所以讨论基础数据结构都是基于value的数据类型 常见的5种数据类型是&#xff1a;String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的类型&#xff0c;v…

Let‘s EasyV|年度作品征集:让数字孪生 看见设计的力量

转眼2023 已然迎来岁末&#xff0c;在这一年以来&#xff0c;关于「数字孪生」、关于「可视化」在遇到各类挑战的同时也在持续进化。在 2023 年&#xff0c;有越来越多人了解并投身于数字孪生可视化相关行业中来&#xff0c;持续制作打磨出更多更精彩的设计作品&#xff0c;并真…

ELF文件结构

ELF文件结构 前文结尾说到编译器编译源代码后生成的文件叫做目标文件&#xff0c;而目标文件经过编译器链接之后得到的就是可执行文件。那么目标文件到底是什么&#xff1f;它和可执行文件又有什么区别&#xff1f;链接到底又做了什么呢&#xff1f;接下来&#xff0c;我们将探…

产品调研——AI平台

本文主要记录了对腾讯云-TIONE平台、华为云-ModelArt等主流AI平台的产品调研。 交互式建模 简单点说就是提供了带训练资源的云IDE&#xff0c;使用形态包括Notebook、VsCode等。 腾讯云-TI平台 TI平台将tensorflow、pytorch、spark环境等均集成到一个Notebook容器中&#xf…

探索“超级服务器” TON:SDK 应用与开发入门

TON 是一个由多个组件构成的去中心化和开放的互联网平台&#xff0c;聚焦于实现广泛的跨链互操作性&#xff0c;同时在高可扩展性的安全框架中运作。TON 区块链被设计为分布式超级计算机或“超级服务器&#xff08;superserver&#xff09;”&#xff0c;旨在提供各种产品和服务…