平台
Ubuntu 18.04
GitLab Community Edition 11.11.0
参考
概述
gitlab提供了一个能够运行在本地的免费的代码托管平台,就像一个本地的github,能够将本身的平时写的或者一些经典的开源程序下载下来,而后mirror到本地gitlab进行托管,好比Android。咱们知道Android工程是有几百个大大小小的git工程组成,为了管理这些git工程,Android提供了repo。关于repo的用法,请参考:
那么如何将Android的代码仓库mirror到本地的gitlab上呢? 下面以一个Android代码仓库中的一个git工程说明一下,清楚了一个怎么搞,其余的也不在话下,能够用脚本批量处理。
正文
1、搭建gitlab服务
2、下载Android代码
参考:
为了方便之后下载,先按照官网的推荐,创建的一个Android代码仓库的本地mirror,下载完成后,内容以下:
而后利用这个mirror,本地clone出一份Android代码,好比:
对应的manifest.xml文件以下(固然也能够只clone一份aosp_mirror/platform/manifest.git,而后切到tags为android-7.1.2_r36的分支):
3、上传到gitlab
一、首先须要往本地gitlab上传一个repo工程
在上面下载的aosp_mirror目录下有一个git-repo.git工程,这里须要将其上传到gitlab上,首先在gitlab上建立一个空的git-repo工程:
二、上传git-repo.git
进入git-repo.git目录下,执行以下命令:
执行完毕后,能够看到gitlab里的git-repo里已经有东西了:
三、上传一个git工程
以上面的manifest.xml中的build/soong为例,熟悉manifest.xml语法的话应该清楚,path表示未来会在本地建立build/soong目录,而name表示的是远程服务器中的路径。
为了简单起见,首先在gitlab上建立一个名为build_soong的空的git工程:
而后在aosp_mirror的platform下找到soong.git工程,进行上传:
此时gitlab上的build_soong工程里已经有内容了:
四、建立一个manifest工程,用于存放manifest.xml文件
4、下载测试
repo init:
repo sync:
查看:
完。