将本地Android SDK代码库迁移到私有的gitlab服务

一、使用说明

Tips: 完整代码链接在文章末尾

1、执行 build.sh

./build.sh

2、进入 output/bin 目录,目录文件如下

output
└── bin
    ├── mirror_push.sh
    ├── repo_mirror_push
    └── setting.ini

3、配置 setting.ini

# 根据repo的XML文件拉取代码到本地,依赖于XMLConfig配置,XML->remote->fetch 需要填写完整的路径
[RepoDownload]
enable=false                    ;是否执行
mirror=false                    ;是否以镜像的方式下载
projectsPath=/demo              ;下载后存放的本地根路径

# 根据repo的XML文件上传代码到服务,依赖于XMLConfig配置
[RepoUpload]
enable=false                    ;是否执行
mirror=false                    ;是否以镜像的方式提交,本地的源码也需要是镜像拉取
repeate=false                   ;允许重复提交操作
to_unshallow=false              ;是否将浅克隆转为完整克隆,否的话则重新创建git
projectsPath=/demo              ;本地代码的根路径
targetHost=https://gitlab.example.com ;目标gitlab地址,域名
targetToken=your_access_token     ;目标gitlab授权的API个人访问令牌
targetGroupId=0                   ;目标远程仓库的根路径的id

# 根据repo的XML文件查看Hash,Changed,依赖于XMLConfig配置
[RepoStatus]
enable=false                    ;是否执行
projectsPath=/demo              ;本地代码的根路径

# REPO仓库的XML文件
[XMLConfig]
outFile=example.xml             ;将指定的XML以单文件的形式输出
basePath=/demo                  ;XML文件的路径
baseFile=xxx.xml                ;预提交仓库的XML文件

repeate: 如果 true,即使远程分支已存在也会重复执行git push操作(如果远程仓库没有新的提交,重复执行git push通常不会有问题); 如果false,远程分支已存在时跳过git push操作。

XMLInfo.baseFile: 预提交仓库的XML文件推荐使用命令.repo/repo/repo manifest -m xxx.xml -o xxx.xml生成的文件,而不是直接使用manifests下的文件。

apiToken: gitlab个人账户授权的apitoken,通过点击右上角【用户头像】->选择【settings】 ->菜单中选择【Access Tokens】,右侧 进行创建,建议给予全部权限

在这里插入图片描述
在这里插入图片描述

namespaceId: 远程库根路径的ID,仓库源码将提交到此路径下

在这里插入图片描述

4、执行 repo_mirror_push

支持重复执行该指令,已经提交过的仓库会根据commitAgain来决定是否重复执行

./repo_mirror_push

执行完成后,远程仓库目录结构如下:

repotest
├── manifest
├── repo
├── remote1
├── remote2
└── remoten

二、拉取代码

1、安装 repo命令

cd work
git clone https://gerrit.rock-chips.com:8443/repo-release/tools/repo

2、下载 manifest

# 通过 --repo-url 参数指定新的repo工具
./repo/repo init --repo-url  git@example.com:repotest/repo.git -u git@example.com:repotest/manifests.git -m demo.xml 

# 删除1步骤中安装的repo
rm -rf repo

3、同步代码

.repo/repo/repo sync -c

三、最后附上我在github上提交的代码链接

https://github.com/chenq3356/repo_mirror_push

https://gitee.com/hunman/repo_mirror_push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值