娜尼的妮妮

导航

repo 常用操作总结-实战宝典

在mirror机器上按照上面的方法拉了一套bare代码之后,在本地配置samba。
安装samba
sudo apt-get install samba
sudo vi /etc/samba/smb.conf
编辑samba配置文件:
[repo]
read only = yes
guest ok = no
valid users = username
path = <mirror path>

//samba的username 要是与他远程连接机器的账号一致
sudo smbpasswd -a username
sudo service sambas restart
重点来了,把reference 共享给其他的build agent。 登录到要使用mirror的机器,执行命令:
sudo mount -t cifs -o username=username,passwd=passwd//sambaIP/<mirror path> <local mirror path>

也可以在build agent上把这个mount命令加到/etc/rc.local 中,每次开机自动mount

  

1 repo  --depth

有时候拉一套Android 代码非常大,且拉下来后不关心代码的history, 只是跑代码扫描,编译的时候,可以加参数 --depth ,相当于只拉 git log -1 这层代码,节省时间空间

repo init <command> --depth=1

2 repo mirror 使用

   服务器上创建本地mirror, 可以大大减轻拉代码的网络负载,提高拉代码的速度,减少本地磁盘空间的占用。

   在服务器上拉取一套bare 仓库的代码,然后--reference=<bare代码路径>

拉取单个git 仓库的bare代码命令:
git clone --mirror <repositoty address>
拉取repo 整套bare代码的命令:
repo init -u <manifest url> -b <branchname> -m <manifestname> --mirror && repo sync

在拉取代码的时候,只需要加上参数--reference  <mirror path>即可从mirror拉取代码
eg:  
git 单个仓库:git clone <reop url> --reference <mirror path>
repo 整套代码:repo init -u <manifest url> -b <branchname> -m <manifestname> --reference <mirror path> && repo sync

 上面的方法是 在一台机器上搭建mirror,然后在同一台机器上使用本地mirror。如果有多台机器,就要在每一台机器上分别拉一套mirror代码,这不是最优解。实际是可以在一台机器上创建好mirror,然后通过samba实现局域网内的共享mirror。这个优点是,只需要在一台机器上拉取,操作简单,节省空间。缺点是一旦这台机器上的mirror坏掉了,所有机器都不能使用mirror了。可自行选择方法。

首先同上面一样,在本地拉一套bare的代码。
然后通过samba把mirror 共享给build agent。

安装samba:sudo apt-get install samba
配置samba 文件:
sudo vi /etc/samba/smb.conf
[repo]
read only = yes
guest ok = no
valid users = username
//username 要和远程登陆的build agent 账号一致
path = <mirror path>

sudo smbpasswd -a username
sudo service sambas restart 

然后从需要使用mirror的机器登录,mount远程机器的mirror path
sudo mount -cifs -o username=username,passwd=passwd//sambaIP/repo <local mirror path>

也可以把这个mount 命令写在/etc/rc.local 文件中,这样build agent每次开机会自动mount 远程的mirror仓库

  对于安卓项目,其实andoid代码拉下来,本身有一个文件夹就是bare仓库,可以当作一个mirror来使用。这个文件夹是.repo/manifest/project-objects

posted on 2021-07-09 12:17  娜尼的妮妮  阅读(2426)  评论(0编辑  收藏  举报