当前位置: 首页 > news >正文

正点原子repo放到自己的git服务器

atk-rk3568_android11

导出project-objects对应仓库

.repo/repo/repo list -n > project-object.txt

project-object.txt格式化,并通过gitolite.conf创建对应仓库

@atk-rk3568_android11_repo = atk-rk3568_android11/RKTools
@atk-rk3568_android11_repo = atk-rk3568_android11/device/common
@atk-rk3568_android11_repo = atk-rk3568_android11/device/generic/arm64
...
...
@atk-rk3568_android11_repo = atk-rk3568_android11/toolchain/benchmark
@atk-rk3568_android11_repo = atk-rk3568_android11/toolchain/pgo-profiles
@atk-rk3568_android11_repo = atk-rk3568_android11/tools/platform-compatrepo @atk-rk3568_android11_repoRW+CD = evan

获取路径和项目

.repo/repo/repo forall -c 'echo $REPO_PATH' > path.txt
.repo/repo/repo forall -c 'echo $REPO_PROJECT' > project.txt

脚本

#!/bin/bash# 常量定义
REP_URL="git@127.0.0.1:atk-rk3568_android11"
# 获取脚本的真实路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="$SCRIPT_DIR/script.log"# 日志函数
log() {echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}# 显示帮助信息
usage() {cat << EOF
Usage: $0 [OPTIONS] <DIR> <SRC_DIR>This script initializes and pushes Git repositories based on paths and projects specified in files.Options:-h, --help     Display this help message and exit.Arguments:DIR            Directory containing path.txt and project.txt files.SRC_DIR        Source directory where the repositories are located.Example:$0 /path/to/dir /source/directoryThe script reads paths from 'path.txt' and corresponding projects from 'project.txt',
initializes a Git repository for each path, commits changes, and pushes to the remote repository.
EOF
}# 检查文件是否存在
check_files() {if [ ! -f "$1" ] || [ ! -f "$2" ]; thenlog "错误:找不到文件 $1$2"usageexit 1fi
}# 初始化并推送 Git 仓库
init_and_push() {local path="$1"local project="$2"local src_dir="$3"# 进入目录cd "$src_dir/$path" || { log "无法进入目录 $src_dir/$path"; return; }# 删除 .git 目录(如果存在)if [ -d ".git" ]; thenrm -rf .gitfi# 初始化 Git 仓库git init || { log "初始化 Git 仓库失败: $path"; return; }# 添加所有文件git add . || { log "添加文件失败: $path"; return; }# 提交更改git commit -m "first commit && create master branch" || { log "提交失败: $path"; return; }# 添加远程仓库git remote add origin "$REP_URL/$project" || { log "添加远程仓库失败: $path"; return; }# 推送至远程仓库git push -u origin master || { log "推送失败: $path"; return; }log "成功处理: $path : $project"
}# 主逻辑
main() {# 参数检查if [ $# -eq 1 ] && ([ "$1" == "-h" ] || [ "$1" == "--help" ]); thenusageexit 0fiif [ $# -ne 2 ]; thenlog "错误:参数数量不正确"usageexit 1fi# 获取参数DIR="$1"SRC_DIR="$2"# 文件路径path_file="$DIR/path.txt"project_file="$DIR/project.txt"# 检查文件是否存在check_files "$path_file" "$project_file"# 打开文件并逐行读取{while IFS= read -r path_line && IFS= read -r project_line <&3; do# 处理每一行init_and_push "$path_line" "$project_line" "$SRC_DIR"echo "==================================="done < "$path_file" 3< "$project_file"} 3<&-  # 关闭文件描述符3# 检查文件行数是否一致if [ "$(wc -l < "$path_file")" -ne "$(wc -l < "$project_file")" ]; thenlog "警告:$path_file$project_file 的行数不一致。"fi
}# 调用主逻辑
main "$@"
http://www.lryc.cn/news/522014.html

相关文章:

  • [MySQL | 二、基本数据类型]
  • 工作记录小点
  • 在PyCharm中使用Anaconda中的虚拟环境
  • ansible基础
  • 人工智能之深度学习_[2]-PyTorch入门
  • 基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩
  • Go语言的文件操作
  • php审计1-extract函数变量覆盖
  • 百度热力图数据原理,处理及论文应用7
  • 端口镜像和端口安全
  • Elasticsearch:Jira 连接器教程第一部分
  • ThreeJs功能演示——几何体操作导入导出
  • LeetCode::2270. 分割数组的方案数
  • elementui表单验证,数据层级过深验证失效
  • 【Java】LinkedHashMap (LRU)淘汰缓存的使用
  • CancerGPT :基于大语言模型的罕见癌症药物对协同作用少样本预测研究
  • 《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • tomcat状态一直是Exited (1)
  • 消息中间件的基础概念入门
  • 基于Web的宠物医院看诊系统设计与实现(源码+定制+开发)在线预约平台、宠物病历管理、医生诊疗记录、宠物健康数据分析 宠物就诊预约、病历管理与健康分析
  • Excel数据叠加生成新DataFrame:操作指南与案例
  • Web 开发入门之旅:从静态页面到全栈应用的第一步
  • WebSocket实现分布式的不同方案对比
  • 基于注意力机制的端到端合成语音检测
  • MySQL NaviCat 安装及配置教程(Windows)【安装】
  • 微信小程序:播放音频
  • Ubuntu安装K8S
  • 独立同分布时,联合概率密度函数等于边缘概率密度函数乘积
  • 半导体数据分析: 玩转WM-811K Wafermap 数据集(三) AI 机器学习
  • 【.net core】【sqlsugar】时间查询示例