1 安装必要软件

1.1 Install git, g++

sudo aptitude install git-core
sudo aptitude install g++

1.2. Install lamp (for searchapi)

sudo tasksel install lamp-server #安装apache,mysql,php5
sudo aptitude install smarty php5-imagick  #smarty:PHP模板引擎,php5-imagick进行图片的创建与修改的api

#安装后apache配置信息在/etc/apache2中,php配置文件在/etc/php5/apache2/目录(这个目录中的conf.d是软链接到以下目录中的)
# edit /etc/php5/conf.d/php.local.ini
include_path = ".:/usr/share/php:/usr/share/php/smarty"  
#include_path说明在php文件中使用include,request等函数引用文件时去哪里找这些文件。

#参照http://apps.hi.baidu.com/share/detail/54793729

1.3. Install mysql dev (for installing sphinx, mysql-python)

aptitude install libmysql++-dev libmysqlclient-dev

1.4. Install python2.7 (for searchtool)

wget http://www.python.org/ftp/python/2.7/Python-2.7.tar.bz2
tar xjf Python-2.7.tar.bz2
cd Python-2.7/
./configure
make
sudo make altinstall

1. 安装git

  1. windows only: 安装msysgit,选最新版,如Git-1.7.4-preview20110204,进入 Git Bash. (此步只针对windows用户,之后的操作若没特别说明,则适用于windows和linux)
  2. linux only: sudo aptitude install git-core

2. 生成带passphrase的ssh key

  1. 若之前生成过 ssh key,则不用重新生成,可将已有ssh key (id_rsa和id_rsa.pub)放到$HOME/.ssh/下
  2. 若以前未生成过ssh key. 打开terminal (或windows: 打开桌面上的Git Bash), 执行
    ssh-keygen -C ping

    , 输入passphrase(必须), 会在$HOME/.ssh/下生成id_rsa和id_rsa.pub两个文件。
  3. windows用户若使用putty,还要用puttygen将id_rsa转换为id_rsa.ppk (putty使用了与openssh不同的私钥格式,但公钥保持不变)

3. 其他准备工作

3.1. 避免每次输入用户名和端口

创建$HOME/.ssh/config,内容如下 参照:http://tech.hexun.com/2009-06-01/118197908.html

# bearr 代表 bear review
Host bearr
    Hostname bear
    Port 29418
    User ping

3.2. 用ssh-agent以避免每次输入passphrase

$ cd
$ git clone git://github.com/pkufranky/shellconf.git .rc
$ (此步骤仅针对windows) cd .rc; git checkout -b windows origin/windows; cd ..
$ ln -sf .rc/bashrc .bashrc # windows: cp .rc/bashrc .bashrc
$ cp .rc/bashrc.local.example .rc/bashrc.local # Enable ssh agent
$ ln -s .rc/gitconfig .gitconfig # windows: cp .rc/gitconfig .gitconfig

注:.bashrc除支持ssh-agent外,还定义了一些常见的git命令的缩写,如 "git add" => gtad, "git commit" => gtci,敲 gt 后按 tab键 会提示所有缩写,具体定义见 .rc/gitrc

上述配置完成后,退出Git Bash或linux终端,并重新打开,会提示你输入passphrase,以后和git服务器交互就不用再输入了。如果没有提示你输入passphrase,请手动敲入下面命令

$ ssh-add

ssh agent的介绍见 http://pkufranky.blogspot.com/2008/04/ssh-agent.html

3.3. 修改$HOME/.gitconfig (必须配公司的email,否则服务器会拒绝push)

编辑user.name和user.email, 比如 "Ping Yin" 和 ping@eee168.com

...
[user]
        name = "Ping Yin"
        email = ping@eee168.com
...

末尾添加如下代码, 以便repo下载代码时使用本地服务器(bearr)而非官方的服务器

[url "bearr:android/"]
        insteadOf = "git://android.git.kernel.org/"

4. 配置gerrit (不支持IE浏览器,建议firefox或chrome)

  1. 访问 http://bear/gerrit,点击右上角的Sign in,用与wiki/jira一样的用户名/密码登录
  2. 上传SSH Keys ($HOME/.ssh/id_rsa.pub) (必须). 若第一次登陆跳过了此步,以后通过 右上角 Settings > SSH Keys进行设置。
  3. 下面表明上传的key已生效,配置成功
    $ ssh bearr
    gerrit: no shell available
    Connection to bear closed.

    以下 内容为app组使用内容,server组开发人员可以忽略。git使用教程请细读 http://bear/confluence/pages/viewpage.action?pageId=8094368

    5. 开始工作

5.1. 列出已有的工程

$ ssh bearr gerrit ls-projects
android/platform/packages/apps/eee168/gadget/wowAlbumGadget
android/platform/packages/apps/eee168/gadget/wowClockGadget
android/platform/packages/apps/eee168/gadget/wowDateTimeGadget
android/platform/packages/apps/eee168/gadget/wowVideoGadget
android/platform/packages/apps/eee168/gadget/wowWeatherGadget
android/platform/packages/apps/eee168/PreloadAppsManager
android/platform/packages/apps/eee168/wowBook
android/platform/packages/apps/eee168/wowHome
android/platform/packages/apps/eee168/wowPinyinIME
android/platform/packages/apps/eee168/wowSoClient

5.2. clone某个工程

git clone bearr:android/platform/packages/apps/eee168/wowHome

5.3. 创建工程 (在gerrit中需要属于admin组)

ssh bearr gerrit create-project --name sandbox/sandbox