当前位置:   article > 正文

使用git-repo管理多个git仓库_external-rockit

external-rockit

step 1: 下载repo

git-repo下载可在服务器端通过以下任一方式下载。

git clone https://gerrit.googlesource.com/git-repo (谷歌官方源)

git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo (国内清华源)

git clone git-repo - Git at Google (国内中科大源)

  1. step 0:建立私人的git-repo工具工程:
  2. 方法一,在git server上直接操作
  3. git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b main
  4. 方法二,在本地操作,然后上传到git server:
  5. # git clone --mirror https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
  6. git remote add gitrepo.git http://git.inspur.com/rk3588/gitrepo.git
  7. git push -u gitrepo.git --all
  8. git push -u gitrepo.git --tags (可选)
  9. #git config --global http.postBuffer 1048576000 //设置缓存为1G
  10. # git config http.postBuffer 524288000 //查看 http.postBuffer数值是否设置成功

step 2 初始化工程和mainifest git仓库

  1. step 1: 初始化 manifest git server端,用于规划整个项目的代码结构:
  2. pakydu@ubuntu18-fttr:~/works/3588/mygit$ mkdir -p rk3588/manifest
  3. pakydu@ubuntu18-fttr:~/works/3588/mygit$ cd rk3588/manifest/
  4. pakydu@ubuntu18-fttr:~/works/3588/mygit/rk3588/manifest$ ls -al
  5. pakydu@ubuntu18-fttr:~/works/3588/mygit/rk3588/manifest$ git init
  6. Initialized empty Git repository in /home/pakydu/works/3588/mygit/rk3588/manifest/
  7. pakydu@ubuntu18-fttr:~/works/3588/mygit/rk3588/manifest$
  8. #创建工程魔板:
  9. vi default.xml
  10. <?xml version="1.0" encoding="UTF-8"?>
  11. <manifest>
  12. <remote name="linux"
  13. fetch="http://git.inspur.com/rk3588" />
  14. <default revision="master"
  15. remote="linux"
  16. sync-j="1" />
  17. <project path="kernel" name="kernel" />
  18. <project path="buildroot" name="rootfs" />
  19. <project path="u-boot" name="u-boot" />
  20. <project path="external/rockit" name="external/rockit" />
  21. </manifest>
  22. #提交工程模版
  23. git add *
  24. git commit -m "add default.xml"
  25. git remote rm origin (删除旧的)
  26. git remote add origin http://git.inspur.com/rk3588/manifest.git
  27. git branch main
  28. git checkout main
  29. git push http://git.inspur.com/rk3588/manifest.git

step 3: 上传每个git的代码:

  1. $ git init (已被git管控代码可省略)
  2. $ git add . (已被git管控代码可省略)
  3. $ git commit -m "Init Code" (已被git管控代码可省略)
  4. $ git push http://git.inspur.com/rk3588/kernel.git master (master or main)
  5. $git init (已被git管控代码可省略)
  6. $ git add . (已被git管控代码可省略)
  7. $ git commit -m "Init Code" (已被git管控代码可省略)
  8. $ git push http://git.inspur.com/rk3588/buildroot.git master
  9. ...

step 4: 在客户端上repo拉取服务器端代码

  1. 将REPO_URL = ‘https://gerrit.googlesource.com/git-repo’
  2. 修改为 REPO_URL = ‘http://git.inspur.com/rk3588/git-repo.git’
  3. #git push http://git.inspur.com/rk3588/git-repo.git
  4. #export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
  5. #export REPO_URL='http://git.inspur.com/rk3588/git-repo.git'
  6. repo init -u http://git.inspur.com/rk3588/manifest.git

Manifest示例

每个采用 repo 管理的复杂多仓库项目都需要一个对应的 manifest 仓库,如 AOSP 的 manifest ,此仓库用来存储所有子仓库的配置信息,repo 也是读取此仓库的配置文件来进行管理操作。里面的配置就是 xml 定义的结构,例如aosp default repository一般是default.xml。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <manifest>
  3. <default revision="refs/tags/android-13.0.0_r11"
  4. remote="aosp"
  5. sync-j="4" />
  6. <superproject name="platform/superproject" remote="aosp" revision="android-13.0.0_r11" />
  7. <contactinfo bugurl="go/repo-bug" />
  8. <project path="build/make" name="platform/build" groups="pdk" >
  9. <linkfile src="CleanSpec.mk" dest="build/CleanSpec.mk" />
  10. <linkfile src="buildspec.mk.default" dest="build/buildspec.mk.default" />
  11. <linkfile src="core" dest="build/core" />
  12. <linkfile src="envsetup.sh" dest="build/envsetup.sh" />
  13. <linkfile src="target" dest="build/target" />
  14. <linkfile src="tools" dest="build/tools" />
  15. </project>
  16. <project path="build/bazel" name="platform/build/bazel" groups="pdk" >
  17. <linkfile src="bazel.WORKSPACE" dest="WORKSPACE" />
  18. <linkfile src="bazel.sh" dest="tools/bazel" />
  19. <linkfile src="bazel.BUILD" dest="BUILD" />
  20. </project>
  21. <project path="build/bazel_common_rules" name="platform/build/bazel_common_rules" groups="pdk" />
  22. <project path="build/blueprint" name="platform/build/blueprint" groups="pdk,tradefed" />
  23. <project path="build/pesto" name="platform/build/pesto" groups="pdk" />
  24. <project path="build/soong" name="platform/build/soong" groups="pdk,tradefed" >
  25. <linkfile src="root.bp" dest="Android.bp" />
  26. <linkfile src="bootstrap.bash" dest="bootstrap.bash" />
  27. </project>
  28. <!-- END open-source projects -->
  29. </manifest>
  30. #示例
  31. pakydu@ubuntu18-fttr:~/works/3588/rk3588_org/.repo$ cat manifests/rk3588/rk3588_linux_bsp_release_20230114_v1.0.6c.xml
  32. <?xml version="1.0" encoding="UTF-8"?>
  33. <manifest>
  34. <include name="include/firefly_gitlab.xml" />
  35. <default remote="firefly-linux" sync-j="4" dest-branch="rk3588/firefly" revision="refs/tags/rk3588/linux_release_v1.0.6c"/>
  36. <project name="u-boot" />
  37. <project name="docs" >
  38. <linkfile dest="docs/.Socs/RK3588/Rockchip_Developer_Guide_Linux_Software_CN.pdf" src="Rockchip_Developer_Guide_Linux_Software_CN.pdf"/>
  39. </project>
  40. <project name="docs-soc_internal" path="docs/.Socs" >
  41. <linkfile dest="docs/RK3588" src="RK3588"/>
  42. </project>
  43. <project name="device/rockchip" dest-branch="firefly" >
  44. <linkfile dest="mkfirmware.sh" src="common/mkfirmware.sh"/>
  45. <linkfile dest="build.sh" src="common/build.sh"/>
  46. <linkfile dest="rkflash.sh" src="common/rkflash.sh"/>
  47. <linkfile dest="device/rockchip/.target_product" src="rk3588"/>
  48. <linkfile dest="firefly-update.sh" src="common/firefly-update.sh"/>
  49. </project>
  50. <project name="tools" >
  51. <linkfile dest="tools/windows/RKDevTool/RKDevTool_Release/config.cfg" src="windows/RKDevTool/RKDevTool_Release/rk3588-config.cfg"/>
  52. <linkfile dest="tools/windows/RKDevTool/rockdev/package-file" src="windows/RKDevTool/rockdev/rk3588-package-file"/>
  53. <linkfile dest="tools/windows/RKDevTool/rockdev/mkupdate.bat" src="windows/RKDevTool/rockdev/rk3588-mkupdate.bat"/>
  54. <linkfile dest="tools/linux/Linux_Pack_Firmware/rockdev/mkupdate.sh" src="linux/Linux_Pack_Firmware/rockdev/rk3588-mkupdate.sh"/>
  55. <linkfile dest="tools/linux/Linux_Pack_Firmware/rockdev/package-file" src="linux/Linux_Pack_Firmware/rockdev/rk3588-package-file"/>
  56. </project>
  57. <project name="kernel" />
  58. <project name="prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu" />
  59. <project name="prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf" />
  60. <project name="rkbin" />
  61. </manifest>
  62. pakydu@ubuntu18-fttr:~/works/3588/rk3588_org/.repo$ cat manifest.xml
  63. <?xml version="1.0" encoding="UTF-8"?>
  64. <manifest>
  65. <include name="rk3588/rk3588_linux_bsp_release_20230114_v1.0.6c.xml" />
  66. <project name="external/security/rk_tee_user" />
  67. <project name="app/qfm" />
  68. <project name="app/QLauncher" />
  69. <project name="app/multivideoplayer" />
  70. <project name="app/qcamera" />
  71. <project name="app/qplayer" />
  72. <project name="app/qsetting" />
  73. <project name="buildroot" >
  74. <linkfile dest="Makefile" src="build/Makefile"/>
  75. <linkfile dest="envsetup.sh" src="build/envsetup.sh"/>
  76. </project>
  77. <project name="external/drm-cursor" />
  78. <project name="external/alsa-config" />
  79. <project name="external/camera_engine_rkaiq" />
  80. <project name="external/chromium" />
  81. <project name="external/rkwifibt-app" />
  82. <project name="external/rockchip-test" />
  83. <project name="uefi" />
  84. <project name="external/rk_pcba_test" />
  85. <project name="external/rkscript" dest-branch="firefly"/>
  86. <project name="external/rktoolkit" />
  87. <project name="external/rkupdate" />
  88. <project name="external/rkwifibt" />
  89. <project name="external/gstreamer-rockchip" />
  90. <project name="external/libmali" />
  91. <project name="external/linux-rga" />
  92. <project name="external/recovery" dest-branch="firefly"/>
  93. <project name="external/security/bin" />
  94. <project name="external/xserver" />
  95. <project name="external/mpp" />
  96. <project name="external/rknn-toolkit2" />
  97. <project name="external/rknpu2" />
  98. <project name="external/security/librkcrypto" />
  99. <project name="external/rockit" />
  100. </manifest>

参考:

https://www.exyb.cn/news/show-159545.html?action=onClick

总结常用repo命令 - 知乎

搭建repo服务器管理多个git工程_repo管理多个git_songze_lee的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/56306
推荐阅读
相关标签
  

闽ICP备14008679号