团队协作Repo服务器搭建

概述 

Repo只是一个工具,可以管理多个Git仓库。它是谷歌为管理庞大的安卓源码而封装的一套脚本,Git才是实际的版本管理工具。文章只是描述了大概步骤,部分细节不做讲解。

Repo 下载

  • Repo项目主页
  • 克隆下的仓库删除与远程的连接, git remote remove origin
  • 服务器上新建仓库 repo
    • 上传刚刚下载 repo

Repo配置文件

Repo管理多个Git仓库,通过配置文件default.xml指定 

  • 某平台配置文件示例
    • 注意顶层目录的Makefile语法,其实是从buildroot中build复制过来的
    • path = ‘uboot-xxx’ 代表克隆下本地的目录名
    • name = ‘uboot’ 代表远程服务器目录名
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote name="origin" fetch="ssh://git@gitlab.com:/"/>
    <default revision="master" remote="origin"/>
    <project path="buildroot" name="buildroot"> 
        <copyfile dest="Makefile" src="build/Makefile"/>
    </project>
    <project path="doc" name="doc"> </project>
    <project path="kernel-xxx" name="kernel"> </project>
    <project path="uboot-xxx" name="uboot"> </project>
</manifest>
  • 远程服务器新建 manifests仓库,上传本地仓库 
  • 然后服务器新建buildroot, doc, kernel, uboot,本地文件上传至远程仓库 

克隆至本地 

  • 下载仓库中的repo文件, 添加可执行权限 chmod +x
  • 修改部分代码
if not REPO_URL:
    REPO_URL = 'xxxxx/repo.git'
REPO_REV = 'stable'

//改为

REPO_URL = '自己仓库地址/repo.git'
REPO_REV = 'master'
  • 初始化版本repo仓库
./repo init -u 自己仓库地址/manifests.git -b master 

// 提示

 * [new branch]      master     -> origin/master

fatal: branch 'master' has not been signed

//修改为

./repo init -u 自己仓库地址/manifests.git -b master --no-repo-verify

问题解决 
  • 同步仓库代码
repo sync
  • 新建本地mater分支(必须)
repo start mater --all

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券