`
月下独酌
  • 浏览: 127917 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

gerrit清单库配置

    博客分类:
  • git
阅读更多
最新repo地址 curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

gerrit清单库是用来配合repo使用的。清单库列出了gerrit服务器上其他的仓库。
客户端通过repo脚本下载了清单库以后,脚本会解析清单库中列出的长裤并自动下载
所以repo init以后,再repo sync 可以一次性下载所有库。这里说的“所有库”,即清单库中的xml列出的库。

先下载git clone https://android.googlesource.com/tools/repo
将repo.git push到自己的gerrit服务器。

创建一个空的清单库manifest.git,清单库里面只有xml文件,没有其他东西
在清单库中创建一个default.xml文件
将manifest.git push到自己的gerrit服务器。

需要说明的是清单库的名字和xml的名字是可以随便取的。后面在repo的使用过程中会指定他们名称。但是如果xml的名字使用default.xml的话,在使用repo的时候就不需要指定名称,repo会默认使用default.xml

这时服务器上就多了2个库:
repo.git
manifest.git

下面是清单库中default.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote fetch="ssh://gerrituser@192.168.222.149:29418" name="remote_name1" review="192.168.222.1:8081"/>

  <default remote="remote_name1" revision="master" />

  <project name="test" path="android/packages" >
    <copyfile dest="a_in_root.txt" src="a_in_test.txt"/>
  </project>

</manifest>



其中project标签属性name的值test是为自己的gerrit服务器中的仓库名称
比如建立仓库的时候使用的是
ssh gerrt_name gerrit create-project test1
那么这个地方project标签属性name的值就为test1
project标签属性path表示客户端签出代码的时候使用的根目录名称
copyfile表示在代码下载下来之后将test仓库的src指定的文件复制到dest路径下。


而default标签中的revision的值为gerrti服务器上的分支名称或者commitid


配置好以后使用repo下载
$mkdir code
$cd code
$repo init -u ssh://user@ip:29418/manifest.git -m default.xml --repo-url=ssh://user@ip:29418/tools/repo.git --repo-branch=master --no-repo-verify
$repo sync
$ls
ls之后就会看到android/packages目录

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics