【书摘】Repo协同工作模式分析

主要内容摘自:《Git权威指南》


Repo协同工作模式分析

1.repo + Gerrit

repo Gerrit是Android代码管理的两大支柱。

建立这样模式的系统一般方法为:
a.搭建Git服务器

b.导入repo.git,为了节省去Google clone的网络操作,有的时候还可能被功夫网拒之门外

c.搭建Gerrit服务器

d.创建项目仓储

e.建立manifest.git项目清单,其中remote fetch指向a所搭建的git服务器地址


2. repo无审核

Gerrit的搭建略显复杂,且需要进行一定维护,当然最重要的就是Gerrit平台的学习和使用(对提交者不是很重要,对管理者重要)。在一个开发环境优良的团队内,Gerrit确实不是很有存在的必要,每个成员都熟悉Git操作,编程能力都可信,单元测试质量由代码提交者保证,集成测试由单独的测试团队进行,即团队拥有一套完整、成型的研发工作流,引入Gerrit并非必要。

        脱离Gerrit服务器向Git服务器直接打交道。可以利用repo forall迭代器实现多个项目代码的PUSH操作。一般方法:
a.repo start建立本地工作分支:
repo start master --all

b.PUSH要使用git push

repo forall -c git push

c.如果git服务器为只读,则需要为本地版本库一一更新服务器版本库地址

repo forall -c \

'git remote set-url --push master android@xxxxxx.com:android/${REPO_PROJECT}.git'

REPO_PROJECT是实现批量设置的关键,为项目名。


3. repo无审核的改进模式

通过repo forall向上游提交要求repo start所建立的分支一定要和上游一致,有可能导致问题。

作者 蒋鑫老师(《Git权威指南》)改进了repo,增加了两个子命令repo config/repo push,可以使得repo脱离Gerrit服务器直接向上游提交代码。改进后的REPO地址:http://github.com/ossxp-com/repo。一般方法:

a.从github上检出项目,用标准repo

repo init --repo-url=git://github.com/ossxp-com/repo.git \

--repo-branch=master --no-repo-verify \

-u git://github.com/ossxp-com/mainfest.git

repo sync

b.设置pushurl

repo config repo.pushurl ssh://git@github.com/ossxp-com/

c.PUSH到上游服务器

假设本地分支已经通过repo start建立好,在修改完若干项目后执行:

repo push

会弹出编辑器确认待推送项目列表,#号表示忽略,将真正需要提交的项目反注释掉,保存退出后就会进行PUSH操作了。


PS:使用改进后的repo向上游服务器推送新分支的操作:
repo start new1 --all

repo push --new_branch

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值