1、下面简单介绍一下如何使用改造之后的 repo。5.6.9.3.1下载改造后的 repo 引导脚本建议使用改造后的 repo 引导脚本替换原脚本,否则在执行 repo init 命令需要提供额外的no-repo-verify参数,以及repo-url和repo-branch参数。$ curl /bin/repo$ chmod a+x /bin/repo5.6.9.3.2用 repo 从 Github 上检出测试项目如果安装了改造后的 repo 引导脚本,使用下面的命令初始化 repo 及清单库。$ mkdir test$ cd test$ repo init -u git:/$ repo syn
2、c如果用的是老的 repo 脚本,用下面的命令。$ repo init -repo-url=git:/ -repo-branch=master -no-repo-verify -u git:当子项目代码全部同步完成后,执行 make 命令。可以看到各个子项目的版本以及清单库的版本。$ makeVersion of test1: 1:0.2-devVersion of test2: 2:0.2Version of manifest: current5.6.9.3.3用 repo config 命令设置 pushurl现在如果进入到各个子项目目录,是无法成功执行 git push 命令的,因为上游
3、 Git 库的地址是一个只读访问的 URL,无法提供写服务。我们可以用新增的repo config命令设置当执行git push时的 URL 地址。$ repo config repo.pushurl ssh:/git设置成功后,可以使用 repo config repo.pushurl 查看设置。$ repo config repo.pushurlssh:5.6.9.3.4创建本地工作分支使用下面的命令创建一个工作分支jiangxin$ repo start jiangxin -all使用repo branches命令可以查看当前所有的子项目都属于jiangxin分支$ repo branc
4、hes* jiangxin | in all projects参照下面的方法修改 test/test1 子项目。对 test/test2 项目也作类似修改。$ cd test/test1$ echo 1:0.2-jiangxin version$ git diffdiff -git a/version b/versionindex 37c65f8.a58ac04 100644- a/version+ b/version -1 +1 -1:+1:0.2-jiangxin$ repo status# on branch jiangxinproject test/test1/ branch jian
5、gxin -m version$ git add -u$ git commit -m 0.2-dev - 0.2-jiangxin执行 make 命令,看看各个项目的改变。5.6.9.3.5PUSH 到远程服务器直接执行repo push就可以将各个项目的改动进行提交。$ repo push如果有多个项目同时进行了改动,为了避免出错,会弹出编辑器显示有改动需要提交的项目列表。# Uncomment the branches to upload:# project test/test1/:# branch jiangxin ( 1 commit, Mon Oct 25 18:04:51 2010
6、 +0800):# 4f941239 0.2-dev - 0.2-jiangxin# project test/test2/:06:# 86683ece 0.2-dev -每一行前面的井号是注释,被忽略的行。将希望提交的分支前的注释去掉,就可以将该项目的分支执行推送动作。如下我们把两个分支的注释都去掉了,要对这两个项目当前分支的改动 push 到上游服务器。branch jiangxin ( 1 commit, Mon Oct 25 18:保存退出(如果使用 vi 编辑器,输入 :wq 执行保存退出)后,马上开始对选择的各个项目执行 git push。Counting objects: 5,
7、done.Delta compression using up to 2 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 293 bytes, done.Total 3 (delta 0), reused 0 (delta 0)To ssh: 27aee23.4f94123 jiangxin - master 100% (3/3), 261 bytes, done. 7f0841d.86683ec jiangxin -OK test/test1/ jiangxinOK test/test2/
8、jiangxin从提交日志我们可以看出来本地的工作分支 jiangxin 的改动被推送的远程服务器的 master 分支(本地工作分支跟踪的上游分支)。我们再次执行 repo push ,会显示没有项目需要提交。no branches ready for upload5.6.9.3.6在远程服务器创建新分支如果我们想在服务器双创建一个新的分支,该如何操作呢?$ repo start feature1 -all$ repo push -new_branch经过同样的编辑器选择之后,自动调用 git push ,在服务器上创建新分支feature1Total 0 (delta 0), reused
9、 0 (delta 0) * new branch feature1 - feature1OK test/test1/ feature1OK test/test2/ feature1我们也可以用 git ls-remote 命令查看远程服务器上的分支。$ git ls-remote git:/ refs/heads/*4f9412399bf8093e880068477203351829a6b1fb refs/heads/feature14f9412399bf8093e880068477203351829a6b1fb refs/heads/masterb2b246b99ca504f141299ecdbadb23faf6918973 refs/heads/test-0.1我们注意到 feature1 和 master 分支引用指向相同的 SHA1 哈希值,这是因为我们直接从 master 分支创建的 feature1 分支。5.6.9.3.7通过不同的清单库版本,切换到不同分支换用不同的清单库,需要建立新的工作区,并且在执行 repo init 时,通过 -b 参数指定清单库的分支。$ mkdir test-0.1$ cd test-0.1/ -b test-0.1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1