当前位置: 代码迷 >> 综合 >> 2022-01-05 repo 远端服务器、公司服务器、同事A和同事B之间的代码更新。
  详细解决方案

2022-01-05 repo 远端服务器、公司服务器、同事A和同事B之间的代码更新。

热度:25   发布时间:2023-11-27 11:05:01.0

一、这个是远端原厂的repo仓库repo-server,服务器地址假设是172.16.50.50/,这里是设置成花白背景,便于区别。

二、这个是自己公司的代码存储服务器(如172.16.60.30),这个相当于git仓库,背景设置成黑青,便于区别。执行下面的命令下载原厂的镜像,注意后面有 --mirror。

repo init  --repo-url=ssh://git@172.16.50.50/home/git/tmp/repo-server/repo.git    -u ssh://git@172.16.50.50/home/git/tmp/repo-server/manifests.git   -m  longor.xml  --mirrorrepo sync

三、同事A(guest_number_one)和同事B(guest_number_two)分别在自己的ubuntu工作目录下执行下面的命令把公司服务器上面的代码下载下来。

   1、命令

repo init  --repo-url=ssh://wfh@172.16.60.30/home/wfh/tmp/company_store/repo.git    -u ssh://wfh@172.16.60.30/home/wfh/tmp/company_store/manifests.git   -m  default.xmlrepo sync

  2、同事A(guest_number_one)的电脑

   2、同事B(guest_number_two)的电脑

 四、到这里,远端原厂的服务器、自己工作的服务器、同事A、B从服务器下载的代码都有了。下面就分不同的情况实际操作。

五、场景一:同事A建立一个分支在project_one里面新建一个jhs559的分支,添加一个touchpad.c的文件,然后更新到公司的服务器。同事B需要同步到服务器的最新代码。

1、同事A的操作界面,把新建的分支上传到公司服务器。

 2、同事B执行repo sync 更新代码,可以看到新的分支。 

六、场景二:远端原厂的工程师更新新内容到他们的服务器,我们如何更新呢?

 1、远端原厂的工程师在project_one 的默认分支honghua_2_branch里添加一个usb.txt,然后更新到他们公司的服务器。

 2、我们需要在我们的公司的存储服务器上面执行repo sync 更新。

 

 3、同事A这个时候就可以执行repo sync -c就可以更新到原厂的服务器了。 

 4、这个发现一个现象,如果原本的工程在默认的分支,repo sync 后还是这个分支,如果不是在默认的分支,repo sync之后会离开这个分支。

 七、场景三:远端原厂的工程师更新新内容(新增一个文件)到他们的服务器,我们如何更新呢?多加测试一下。这个例子更具代表性。

1、原厂的工程师在master分支上添加一个trump_come_back.txt的文件然后上传到他们的服务器。

 2、在自己公司的服务器上执行repo sync更新

 3、同事A在之前已经执行过repo start master project_one新建一个分支本地的master分支了,这个时候执行repo sync会同步服务器上的内容,可以看到master 分支下有trump_come_back.txt文件了,说明更新ok,无需跟aosp/master合并。

八、场景四:远端的原厂工程师想更换project_one的默认分支到master,我们的更新流程如下。

 1、远端的原厂工程师修改.repo/manifests/default.xml文件,project_one默认修改成master

 2、远端的原厂工程师把该修改提交到他们的服务器

3、在我们公司自己的服务器上repo sync更新。

 4、同事A这个时候就可以执行repo sync 更新,从下图你可以看到更新完后project_one下面的默认分支变成master了。