基于Rockchip RK3588 Android12 SDK搭建自己的repo 仓库服务器

文章目录

  • 基于Rockchip RK3588 Android12 SDK搭建自己的repo 仓库服务器
    • 搭建自己的repo代码服务器
      • 流程框图
      • 环境
      • gitolite搭建
        • 客户代码服务器端操作
        • 客户端操作
      • repo镜像搭建
        • 客户代码服务器端操作
        • 客户端操作
      • 客户端操作
    • 代码管理
      • 切换自己的代码分支
      • 代码修改提交
      • 同步RK的代码

搭建自己的repo代码服务器

流程框图

环境

安装openssh-server用于远程登录,git用于管理工程,keychain用于公私钥管理工具

sudo apt-get install openssh-server git keychain

gitolite搭建

客户代码服务器端操作

(以服务器地址:10.10.10.206为例进行说明)

  1. 创建git账户:
sudo adduser --system --shell /bin/bash --group git
sudo passwd git
  1. 以“git”账户登录服务器
  2. 确保“~/.ssh/authorized_keys”为空或者不存在
  3. 拷贝服务器管理员的公钥到“~/YourName.pub”
  4. 下载gitolite源码
git clone https://github.com/sitaramc/gitolite.git
  1. 在git用户目录下创建bin目录
mkdir -p ~/bin
  1. 执行下列命令安装gitolite,不同版本安装方法不同,请参考源码中的文档:
gitolite/install -to ~/bin
  1. 设置管理员
~/bin/gitolite setup -pk YourName.pub

客户端操作

  1. 克隆服务器的gitolite管理仓库:
git clone ssh://git@10.10.10.206/gitolite-admin.git
  1. 添加用户公钥到gitolite目录下
cp username.pub keydir/username.pub
  1. 添加管理员用户
vi conf/gitolite.conf
@admin = admin1 admin2 admin3
repo gitolite-admin
RW+     =   @admin

repo镜像搭建

客户代码服务器端操作

  1. 用git账号登入服务器
  2. 在根目录下载repo工具
git clone ssh://git@www.rockchip.com.cn:2222/repo-release/tools/repo
  1. 在repositories目录下新建RK_Android12_mirror目录
    repositories目录在搭建完gitolite后会自动生成。
cd repositories
mkdir RK_Android12_mirror
  1. 进入 RK_Android12_mirror目录
cd RK_Android12_mirror
  1. 从RK代码服务器下载RK Android12 SDK镜像
~/repo/repo init --repo-url=ssh://git@www.rockchip.com.cn:2222/repo-release/tools/repo.git  -u ssh://git@www.rockchip.com.cn:2222/Android_S/rk3588-manifests.git -m Android12.xml --mirror.repo/repo/repo sync -c
  1. 创建仓库组权限
.repo/repo/repo list -n > android_s.conf
sed -i 's/^/@android_s = RK_Android12_mirror\/&/g' android_s.conf

客户端操作

  1. 将客户代码服务器端的android_s.conf拷贝到客户端的·gitolite-admin/conf/·下
  2. 添加组权限
vim conf/android_s.conf
@usergroup = user1 user2 user3
repo @android_s
R   = @usergroup
RW+ = @admin
vim conf/gitolite.conf
include "android_s.conf"
  1. 新建自己的manifests仓库
vim conf/android_s.conf
@android_s = RK_Android12_mirror/manifests_xxx
  1. 将以上gitolite-admin仓库的修改内容push到客户代码服务器端上面,然后就就可以下载代码了。

客户端操作

  1. 在客户端下载自己的manifests_xxx仓库
    在客户端电脑上下载客户代码服务器的manifests_xxx.git仓库
git clone ssh://git@10.10.10.206/RK_Android12_mirror/manifests_xxx.git
  1. 在客户端下载RK的原始manifests仓库
git clone ssh://git@10.10.10.206/RK_Android12_mirror/manifests.git
  1. 提交manifest.xml文件到新建的manifest_xxx仓库中
    将原始manifests下面的文件拷贝到的manifests_xxx内
cd manifests_xxx
cp -rf manifests/*.xml manifests_xxx/

查看拷贝文件

git statusAndroid12.xmlAndroid12_Express.xmldefault.xml include/rk3326_repository.xmlinclude/rk356x_repository.xmlinclude/rk_checkout_from_aosp.xmlinclude/rk_modules_repository.xmlremote.xml       remove_s.xml

本地提交

git add -A
git commit -m "init xxx"

push到远程分支

git push origin master:master
  1. 创建自己的代码下载链接
    在根目录下下载repo工具
git clone ssh://git@www.rockchip.com.cn:2222/repo-release/tools/repo

按以上步骤操作后,自己的代码下载链接如下

mkdir Android12
cd Android12
~/repo/repo init -u ssh://git@10.10.10.206/RK_Android12_mirror/manifests_xxx.git -m Android12.xml

其中:
//10.10.10.206 是你的服务器端地址
通过以上步骤就可以完成自己的repo服务器搭建了,可以把自己的代码服务器链接分享给同事们一起工作了。

代码管理

通过以上步骤搭建代码服务器后大部分代码仓库都使用RK默认的分支,如果有仓库需要修改自己的代码,可以参考下面的步骤进行操作。

切换自己的代码分支

  1. 进入需要修改的代码仓库,以kernel目录为例进行说明
cd kernel-4.19
  1. 切换一个本地分支
git checkout remotes/m/master -b xxx_branch
  1. push xxx_branch分支到远程服务器
git push rk29 xxx_branch:xxx_branch

其中rk29是remote 可以直接tab键自动补全
4. 进入.repo/manifests目录修改manifest里面指定的分支
进入.repo/manifests目录通过grep kernel可以找到kernel仓库对应的manifest的位置

cd .repo/manifests
--- a/include/rk_modules_repository.xml
+++ b/include/rk_modules_repository.xml
@@ -10,7 +10,7 @@<project path="hardware/rockchip/libgraphicpolicy" name="rk/hardware/rk29/libgraphicpolicy" remote="rk" revision="refs/tags/android-1s.0-mid-rkr1" /><project path="hardware/rockchip/libhwjpeg" name="rk/hardware/rk29/libhwjpeg" remote="rk" revision="refs/tags/android-12.0-mid-rkr1"/><project path="u-boot" name="rk/u-boot" remote="rk" revision="refs/tags/android-12.0-mid-rkr1"/>
-  <project path="kernel" name="rk/kernel" remote="rk29" revision="refs/tags/android-12.0-mid-rkr1"/>
+  <project path="kernel" name="rk/kernel" remote="rk29" revision="xxx_branch"/><project path="bootable/recovery/rkupdate" name="platform/bootable/recovery/rk_update" remote="rk" revision="refs/tags/android-12.0-mid-rkr1"/><project path="bootable/recovery/rkutility" name="platform/bootable/recovery/rk_utility" remote="rk" revision="refs/tags/android-12.0-mid-rkr1"/>
  1. 提交修改的manifest到远程分支
git add include/rk_modules_repository.xml
git commit -m "change kernel branch on xxx_branch"
git push origin default:master

提交manifests仓库后,其他同事就可以同步到你们自己的分支的kernel代码了。

代码修改提交

按上面步骤切换完分支后就可以在自己分支上提交自己的修改了, 提交直接push到xxx_branch分支上面。

同步RK的代码

  1. 同步RK代码需要在服务器端进行sync操作
cd RK_Android12_mirror
.repo/repo/repo sync -c
  1. 客户端合并RK对manifests的修改
  • 下载RK原始manifests仓库
git clone //10.10.10.206/wlq/test/manifests.git

使用对比工具对比manifests(RK原始)和manifests_xxx(自己的),将RK修改的差异部分合并到自己的仓库中(主要修改tag,增加删除仓库等)。

  • 对比确认后将修改push到manifests_xxx上。

这步也可以确认自己修改了哪些仓库,在下一步中将进行修改仓库的合并。
3. 有自己切分支的目录需要手动把RK的修改merge到自己的分支上面
以kernel为例:

  • 查看当前指向的远程分支
wlq@wlq:~/home1/test2/kernel-4.19$ git branch -av
* android-11.0-mid-rkr7   0bde59fad73a ARM: configs: rockchip_defconfig enable ION_CMA_HEAPxxx_branch              0bde59fad73a ARM: configs: rockchip_defconfig enable ION_CMA_HEAPremotes/m/master        -> rk29/xxx_branchremotes/rk29/xxx_branch 0bde59fad73a ARM: configs: rockchip_defconfig enable ION_CMA_HEAP

可以看到当前指向的是:remotes/m/master -> rk29/xxx_branch

  • 创建本地分支(从自己的远程分支上切)
git checkout remotes/m/xxx_branch -b local_xxx_branch
  • 确认当前RK发布的最新TAG
wlq@wlq:~/home1/test2/kernel-4.19$ git tag | grep rkr
android-10.0-mid-rkr1
android-10.0-mid-rkr10
android-10.0-mid-rkr11
android-10.0-mid-rkr13
android-10.0-mid-rkr2
android-10.0-mid-rkr3
android-10.0-mid-rkr4
android-10.0-mid-rkr5
android-10.0-mid-rkr6
android-10.0-mid-rkr7
android-10.0-mid-rkr8
android-10.0-mid-rkr9
android-11.0-ebook-rkr1
android-11.0-ebook-rkr2
android-11.0-ebook-rkr3
android-11.0-ebook-rkr4
android-11.0-ebook-rkr5
android-11.0-ebook-rkr6
android-11.0-mid-rkr1
android-11.0-mid-rkr2
android-11.0-mid-rkr3
android-11.0-mid-rkr4
android-11.0-mid-rkr4.1
android-11.0-mid-rkr5
android-11.0-mid-rkr6
android-11.0-mid-rkr7
android-11.0-mid-rkr7-prev
android-11.0-mid-rkr8
android-12.0-mid-rkr1

可以看到当前最新的Android12的tag是android-12.0-mid-rkr1

  • 合并android-12.0-mid-rkr1到本地分支
git merge android-12.0-mid-rkr1

查看是否有冲突,如果有冲突先解决冲突,没有冲突在执行下一步

  • push合并完的代码到远程分支
git push rk29 local_xxx_branch:xxx_branch
  • 其他切分的目录都按这个方式进行合并提交即可

基于Rockchip RK3588 Android12 SDK搭建自己的repo 仓库服务器相关推荐

  1. RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项

    RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项 文章目录 RK3588 Android12 SDK 中在device介绍及如何新建自己的产品lunch项 ...

  2. Rockchip RK3588 Android SDK编译方法

    Rockchip RK3588 Android SDK编译方法 Rockchip RK3588 Android SDK在原始Android的编译方式的基础上封装了一个编译脚本build.sh,用来简化 ...

  3. Rockchip RK3588 Android+Linux双系统方案的实现

    Rockchip RK3588 Android+Linux双系统方案的实现 文章目录 Rockchip RK3588 Android+Linux双系统方案的实现 概述 硬件环境 软件环境 要求 代码修 ...

  4. Rockchip RK3588 kernel dts解析之PCIe

    Rockchip RK3588 kernel dts解析之PCIe 文章目录 Rockchip RK3588 kernel dts解析之PCIe RK3588控制器 RK3588 PHY 使用限制 D ...

  5. Rockchip RK3588如何创建新一个新板级DTS

    Rockchip RK3588如何创建新一个新板级DTS 文章目录 Rockchip RK3588如何创建新一个新板级DTS 基于SDK已有的DTS选择一个适合的基础参考DTS RK3588 SDK发 ...

  6. Eclipse+ADT+Android SDK 搭建安卓开发环境

    2019独角兽企业重金招聘Python工程师标准>>> Eclipse+ADT+Android SDK 搭建安卓开发环境 博客分类: Android 最近刚开始接触Android(安 ...

  7. 基于Windows 7旗舰版搭建WinCE6.0开发环境的过程

    首先感谢JeffreyLi提供了更简便的安装WinCE6.0 R3的方法,今天验证过了,确实比我之前整理的<WinCE6.0 R3的安装步骤>方便很多,十分感谢! 为了方便大家参考,重新整 ...

  8. Android:Eclipse+ADT+Android SDK 搭建安卓开发环境

    Eclipse+ADT+Android SDK 搭建安卓开发环境 要求 必备知识 windows 7 基本操作. 运行环境 windows 7(64位);  eclipse-jee-luna-SR2- ...

  9. 基于Unity3D 的Vuforia SDK开发基础教程

    前言 增强现实技术是当前信息技术领域的一项重要的综合性技术,融合了模式识别.计算机图形学等多个学科的知识.今天我们就和大家一起来看一下,这个技术到底可以带给我们什么吧.   左边是通过手机观看图片,可 ...

最新文章

  1. 互联网1分钟 | 0911
  2. 安装Typora情况下,Windows右键新建菜单中增加新建md文件
  3. Python Django URL逆向解析(通过模板页面逆向访问)代码示例
  4. 安装或卸载英特尔快速存储技术时,提示“此程序有一个挂起的重新启动”
  5. 电商系统的自提订单,提货流程如何设计
  6. android 通知灯 测试,Android灯光系统通知灯【转】
  7. 机器学习 —— 极大似然估计与条件概率
  8. 庆祝ColdFusion十周年
  9. 集群oracle实例扩sga,oracle管理基础知识
  10. 推荐 ADO.NET Entity Framework (EDM) 相关技术文章
  11. JavaWeb:下载文件
  12. [Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式
  13. win10官方原版iso镜像 下载地址
  14. 怎样用matlab画斜条纹图案,CorelDRAW制作简单的均匀倾斜条纹
  15. html诗词赏析网页制作,html 网页文本设计
  16. Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
  17. 极简步骤试玩Ant Design Pro myapp demo
  18. fzu 1891 升降序列
  19. 光明行动:共同呵护好孩子的眼睛——广西实施光明行动实地考察调研综述
  20. 大连理工计算机应用基础作业,2014秋大连理工大学《计算机应用基础》在线测试1...

热门文章

  1. FFmpeg从入门到出家(FLV文件结构解析)
  2. 如何使用物联网低代码平台进行画面管理?
  3. 高恪一键管控之封杀随身wifi与电视盒子_php_sir_新浪博客
  4. 软件调试方法--小黄鸭调试法
  5. 2021ccpc桂林小结
  6. 【致远OA接口】获取接口凭证token
  7. 各种前端技术关系图和分类o(╥﹏╥)o
  8. 读书笔记:算法图解 using Python
  9. Revit软件 | 愁死人,一个误删引发的事故
  10. Revit中住宅建筑两户型间共墙怎么处理及房间面积计算