• 构建git+gerrit+repo的Android代码服务器


      谷歌的Android源码是基于Git+Repo管理的,官方推荐的代码管理也是git+gerrit+repo。谷歌自己都在用的东西,各种优点,各种强大就不用说了,你懂的。关于它们的介绍可查阅极客学院的Wiki中官方翻译http://wiki.jikexueyuan.com/project/android-source/developing.html。下面结合公司搭建代码服务器的经历,说下整个搭建和使用过程,希望大家一起交流下心得。

    安装git

    1.建个git账户。作服务器用,最好建个git账户。指令:sudo adduser --system --shell /bin/sh  --gecos 'git version control' --group --disabled-password --home /home/git git。篇幅有限,简单指令就不解释了,请自行谷歌百度,我也是这么干的。

    2.安装 ssh client 和 ssh server  (有可能ubuntu默认已经安装,重新敲下不会损失什么的)

    sudo apt-get install openssh-client openssh-server

    3.安装git 客户端

    sudo apt-get install git-core git-gui gitk

    4. 生成ssh账号的密钥

    ssh-keygen -t rsa

    然后切到git用户下,执行下面步骤

    5. 配下环境变量

    echo "PATH=$HOME/bin:$PATH" > ~/.bashrc

    不行就下面这个

    export PATH=/home/git/bin:$PATH

    6.安装gitolite server

    在/home/git下执行

    git clone git://github.com/sitaramc/gitolite  #从网站上获取gitolite的代码,放在了/home/git下,是安装文件

    ./gitolite/install -ln  #Gitolite系统安装,安装到/home/git/bin,要在git用户下mkdir bin,否则这步报错

    gitolite setup -pk /tmp/git.pub  #生成repository,仓库。其中git.pub是由第四步生成的id_rsa.pub改名的,可随意改

    最后使用git config --global user.name  和 git config --global user.email 配下用户名和邮箱,至此git安装完毕

    安装配置gerrit

    1. 安装java。网上很多,挤客学院也有,很简单

    2. 安装git。前面已经说过

    3. 创建专用的用户(gerrit2)来安装gerrit

    sudo adduser gerrit2

    sudo su gerrit2

    4. 安装gerrit,选择http认证(gerrit2用户)

    java -jar ./gerrit-2.9.1.war init -d ~/gerrit_site_http

    安装过程中,Authentication method [OPENID/?]:输入http,另外Behind reverse proxy [y/N]?选y 反向代理,其他的默认即可

    5. 配置gerrit.config,可参考下面

    [gerrit]

    basePath = git

    canonicalWebUrl = http://192.168.1.48:8081/

    [database]

    type = H2

    database = db/ReviewDB

    [auth]

    type = HTTP

    [sendemail]

    smtpServer = localhost

    [container]

    user = gerrit2

    javaHome = /usr/lib/jvm/java-6-oracle/jre

    [sshd]

    listenAddress = *:29418

    [httpd]

    listenUrl = proxy-http://192.168.1.48:8081/

    [cache]

    directory = cache

    6. 安装配置apache2

    sudo apt-get install apache2

    反向代理可参考下面

    /etc/apache2/httpd.conf

    <VirtualHost *:80>

     ProxyRequests Off

     ProxyVia Off

     ProxyPreserveHost On

     <Proxy *>

    Order deny,allow

    Allow from all

     </Proxy>

     <Location /login/>

        AuthType Basic

        AuthName "Gerrit Code Review"

        AuthBasicProvider file

        AuthUserFile /home/gerrit2/gerrit_site_http1/etc/passwords

        Require valid-user

     </Location>

     ProxyPass / http://192.168.1.48:8081/

    </VirtualHost>

    7. 设置第一个gerrit用户(管理员)的帐号和密码

    进入/home/gerrit2/review_site/etc目录下

    touch passwords

    htpasswd passwords admin

    这里的admin就是以后用来登录gerrit的用户名。以后要为gerirt增加用户,也需要通过htpasswd命令来添加。

    用htpasswd创建的用户时,并没有往gerrit中添加账号,只有当该用户通过web登陆gerrit服务器时,该账号才会被添加进gerrit数据库中。

    8. 重启电脑然后重启服务

    sudo /etc/init.d/apache2 restart

    su gerrit2

    cd /home/gerrit2/gerrit_site

    ./bin/gerrit.sh stop

    ./bin/gerrit.sh start

    9. 打开浏览器,输入192.168.1.48即可登录

    10. 验证下 ssh -p 29418 -i ~/.ssh/admin 192.168.1.48 -l admin

    11. 设置/修改邮箱 ssh ha gerrit set-account --add-email admin@cncgroup.cn admin

        一个邮箱只能一个用户使用,否则会报错。

    12.建库:ssh -p 29418 -i ~/.ssh/admin 192.168.1.48 -l admin gerrit create-project --name

          ssh ha gerrit create-project --name test --empty-commit

    13.然后是分组/审查的设置,这个内容比较多,可参考帮助文档,设置能达到目标即可

    以上就是gerrit的整个过程,你会发现gerrit目录结构中有git仓库,即gerrit把git集成进去了,git的操作要经过gerrit的审查。

    repo安装

    如果能科学上网的话,很简单,只需从官网下把那个repo脚本下下来,放/bin/下, chmod a+x repo即可。每次用它拉版本时,它会从谷歌服务器下载repo仓库(一系列脚本),之后直接用即可。可惜不行。

    可采用的办法是

    1. 通过其他途径下下repo.git仓库(使用tuna的镜像源进行更新 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'加到~/.bashrc 里),传到本地服务器上(gerrit的git库review_site/git下)。

    2. 然后修改/bin/repo脚本 os.system("git clone ssh://192.168.1.48:29418/repo %s"%dst) 先执行了下git clone把repo.git这个库从本地服务器clone下来

    3. 在gerrit的git库下创建manifest.git库,其中放各个.xml文件,相关可参考

    <?xml version="1.0" encoding="UTF-8"?>

    <manifest>

     <remote  name="repo-server"

      fetch="ssh://192.168.1.48:29418"

      review="http://192.168.1.48"/>

     <default revision="develop"

      remote="repo-server"

      sync-j="4" />

     <project path="alps/packages" name="alps/packages" />

    </manifest>

    至此,构建git+gerrit+repo的Android代码服务器完成,使用中还有很多细节/技巧,后续大家一起交流。

    转自:http://qun.jikexueyuan.com/android/topic/163

  • 相关阅读:
    SceneBuilder 打不开 .fxml文件,只在任务栏显示
    JDK1.6 1.7 1.8 多版本windows安装 执行命令java -version 版本不变的问题
    新手根据菜鸟教程安装docker,从No package docker-io available开始遇到的坑...
    Linux安装mysql
    用Eclipse搭建ssh框架
    前端面试之vue相关的面试题
    前端面试之闭包理解
    HTML5新规范和CSS3新特性
    vue2.0项目创建之环境变量配置
    windows下SVN服务器搭建--VisualSVN与TortoiseSVN的配置安装
  • 原文地址:https://www.cnblogs.com/junlinqunxia/p/8560718.html
Copyright © 2020-2023  润新知