脱离 Gerrit 审核服务器使用 repoWord文档下载推荐.docx
《脱离 Gerrit 审核服务器使用 repoWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《脱离 Gerrit 审核服务器使用 repoWord文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
下面简单介绍一下如何使用改造之后的repo。
5.6.9.3.1
下载改造后的repo引导脚本
建议使用改造后的repo引导脚本替换原脚本,否则在执行repoinit命令需要提供额外的–no-repo-verify参数,以及–repo-url
和–repo-branch
参数。
$curl>
~/bin/repo
$chmoda+x~/bin/repo
5.6.9.3.2
用repo从Github上检出测试项目
如果安装了改造后的repo引导脚本,使用下面的命令初始化repo及清单库。
$mkdirtest
$cdtest
$repoinit-ugit:
//
$reposync
如果用的是老的repo脚本,用下面的命令。
$repoinit--repo-url=git:
//\
--repo-branch=master--no-repo-verify\
-ugit:
当子项目代码全部同步完成后,执行make命令。
可以看到各个子项目的版本以及清单库的版本。
$make
Versionoftest1:
1:
0.2-dev
Versionoftest2:
2:
0.2
Versionofmanifest:
current
5.6.9.3.3
用repoconfig命令设置pushurl
现在如果进入到各个子项目目录,是无法成功执行gitpush命令的,因为上游Git库的地址是一个只读访问的URL,无法提供写服务。
我们可以用新增的repoconfig
命令设置当执行gitpush
时的URL地址。
$repoconfigrepo.pushurlssh:
//git@
设置成功后,可以使用repoconfigrepo.pushurl查看设置。
$repoconfigrepo.pushurl
ssh:
5.6.9.3.4
创建本地工作分支
使用下面的命令创建一个工作分支jiangxin
$repostartjiangxin--all
使用repobranches
命令可以查看当前所有的子项目都属于jiangxin
分支
$repobranches
*jiangxin|inallprojects
参照下面的方法修改test/test1子项目。
对test/test2项目也作类似修改。
$cdtest/test1
$echo"
1:
0.2-jiangxin"
>
version
$gitdiff
diff--gita/versionb/version
index37c65f8..a58ac04100644
---a/version
+++b/version
@@-1+1@@
-1:
+1:
0.2-jiangxin
$repostatus
#onbranchjiangxin
projecttest/test1/branchjiangxin
-mversion
$gitadd-u
$gitcommit-m"
0.2-dev->
0.2-jiangxin"
执行make命令,看看各个项目的改变。
5.6.9.3.5
PUSH到远程服务器
直接执行repopush
就可以将各个项目的改动进行提交。
$repopush
如果有多个项目同时进行了改动,为了避免出错,会弹出编辑器显示有改动需要提交的项目列表。
#Uncommentthebranchestoupload:
#
#projecttest/test1/:
#branchjiangxin(1commit,MonOct2518:
04:
512010+0800):
#4f9412390.2-dev->
0.2-jiangxin
#projecttest/test2/:
06:
#86683ece0.2-dev->
每一行前面的井号是注释,被忽略的行。
将希望提交的分支前的注释去掉,就可以将该项目的分支执行推送动作。
如下我们把两个分支的注释都去掉了,要对这两个项目当前分支的改动push到上游服务器。
branchjiangxin(1commit,MonOct2518:
保存退出(如果使用vi编辑器,输入:
wq执行保存退出)后,马上开始对选择的各个项目执行gitpush。
Countingobjects:
5,done.
Deltacompressionusingupto2threads.
Compressingobjects:
100%(2/2),done.
Writingobjects:
100%(3/3),293bytes,done.
Total3(delta0),reused0(delta0)
Tossh:
27aee23..4f94123jiangxin->
master
100%(3/3),261bytes,done.
7f0841d..86683ecjiangxin->
--------------------------------------------
[OK]test/test1/jiangxin
[OK]test/test2/jiangxin
从提交日志我们可以看出来本地的工作分支jiangxin的改动被推送的远程服务器的master分支(本地工作分支跟踪的上游分支)。
我们再次执行repopush,会显示没有项目需要提交。
nobranchesreadyforupload
5.6.9.3.6
在远程服务器创建新分支
如果我们想在服务器双创建一个新的分支,该如何操作呢?
$repostartfeature1--all
$repopush--new_branch
经过同样的编辑器选择之后,自动调用gitpush,在服务器上创建新分支feature1
Total0(delta0),reused0(delta0)
*[newbranch]feature1->
feature1
[OK]test/test1/feature1
[OK]test/test2/feature1
我们也可以用gitls-remote命令查看远程服务器上的分支。
$gitls-remotegit:
//refs/heads/*
4f9412399bf8093e880068477203351829a6b1fbrefs/heads/feature1
4f9412399bf8093e880068477203351829a6b1fbrefs/heads/master
b2b246b99ca504f141299ecdbadb23faf6918973refs/heads/test-0.1
我们注意到feature1和master分支引用指向相同的SHA1哈希值,这是因为我们直接从master分支创建的feature1分支。
5.6.9.3.7
通过不同的清单库版本,切换到不同分支
换用不同的清单库,需要建立新的工作区,并且在执行repoinit时,通过-b参数指定清单库的分支。
$mkdirtest-0.1
$cdtest-0.1
//-btest-0.1