简易repo服务器搭建

  好久没有写博客了,最近一直被其他的事情忙着,思考了很多,感觉停留在一个水平线上迟迟没法更进一步,虽然依旧学习着新东西,重复着工作,今年已经换了两份工作了,虽然都不是自己非常满意的,但是那又能怎么样呢,还不是要继续工作。有时候觉得之前没有好好考虑自己的职业规划,真的挺为自己感到可笑,虽然很多人都劝告过我要选择一条路,但是心里有cto的路,不广泛涉猎,以后怎么能到达自己的目标呢,即使这个目标有点长远,有点yy。既然选择了远方,留给世界的只能是背影。
  言归正传吧,这次就是搭建简易的repo服务器了,相信一般人都知道repo吧,google的android代码就是通过repo来管理的。其实repo就是一个python的脚本,用来管理多个git仓库,这么理解比较容易些。至于其他种种,不多说了,开始搭建个测试下吧。

1、下载安装repo

git clone https://review.mfunz.com/git-repo git-repo.git

  下载好后,进入到目录中:

cd git-repo.git

  然后拷贝到相应目录,其实也可以自己通过设置绝对路径来完成,这里还是拷贝过去吧。

sudo cp repo /usr/bin/repo

  修改repo脚本:

vim /usr/bin/repo

  修改

REPO_URL = 'https://gerrit.googlesource.com/git-repo'

  为

REPO_URL = '/home/jared/test/git-repo.git'

  因为我们已经下载了repo相关的代码,所以就指定到下载到的那个路径了。至此repo命令就可以正常使用了。

2、建立repo服务器

2.1、建立manifest

  新建repos,然后创建manifest文件夹

mkdir manifest

  新建defalut.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
     <remote name="origin" fetch="/home/jared/test/repos"/>

     <default revision="master" remote="origin" />
     <project name="test1" path="test1"/>
     <project name="test2" path="test2"/>

  </manifest>

  这里有两个仓库,test1和test2。接着我们就可以建立中心仓库了:

➜  manifest git init
Initialized empty Git repository in /home/jared/test/repos/manifest/.git/

  把刚添加的default.xml添加进去

manifest git:(master)git add .

  提交修改

➜  manifest git:(master) ✗ git commit -m "init_repo"
[master (root-commit) 2694563] init_repo
 1 file changed, 10 insertions(+)
 create mode 100644 default.xml

  新建manifest.git中心仓库。

➜  repos git clone --bare manifest 
Cloning into bare repository 'manifest.git'...
done.

  新建完后可以把manifest删除。

2.2、建立test1/test2仓库

  新建test1文件夹并且添加个readme.md文件。

➜  repos mkdir test1
➜  test1 echo test > readme.md

  初始化git仓库:

➜  test1 git init
Initialized empty Git repository in /home/jared/test/repos/test1/.git/

  修改提交:

➜  test1 git:(master) ✗git add .

➜  test1 git:(master) ✗ git commit -m "init repo"
[master (root-commit) 3a25343] init repo
 1 file changed, 1 insertion(+)
 create mode 100644 readme.md

  新建test1中心仓库:

➜  repos git clone --bare test1 
Cloning into bare repository 'test1.git'...
done.

  至此test1.git中心仓库建立完成,同理建立test2.git仓库。

3、测试使用

  既然已经建立好了,那么就来使用下吧,首先就是初始化repo了,相信命令会很熟悉:

➜  work repo init -u ~/test/repos/manifest.git 
Get /home/jared/test/git-repo.git
remote: Counting objects: 3725, done.
remote: Compressing objects: 100% (1755/1755), done.
remote: Total 3725 (delta 1910), reused 3725 (delta 1910)
Receiving objects: 100% (3725/3725), 3.39 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1910/1910), done.
From /home/jared/test/git-repo
repo has been initialized in /home/jared/test/work

  接着同步代码:

➜  work repo sync
Fetching project test1
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
From /home/jared/test/repos/test1
 * [new branch]      master     -> origin/master
 * [new branch]      v1.0.0     -> origin/v1.0.0
Fetching project test2
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
From /home/jared/test/repos/test2
 * [new branch]      master     -> origin/master
 * [new branch]      v1.0.0     -> origin/v1.0.0

  同步完成了,ls看下有没有两个仓库:

➜  work ls
test1  test2

  已经同步下来了,接着看下default.xml文件,之后如果需要增加其他的仓库就在这里添加:

➜  work ls .repo/manifests
default.xml

  repo仓库的简单搭建基本完成了。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值