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
- windows only: 安装msysgit,选最新版,如Git-1.7.4-preview20110204,进入 Git Bash. (此步只针对windows用户,之后的操作若没特别说明,则适用于windows和linux)
- linux only: sudo aptitude install git-core
2. 生成带passphrase的ssh key
- 若之前生成过 ssh key,则不用重新生成,可将已有ssh key (id_rsa和id_rsa.pub)放到$HOME/.ssh/下
- 若以前未生成过ssh key. 打开terminal (或windows: 打开桌面上的Git Bash), 执行
ssh-keygen -C ping
, 输入passphrase(必须), 会在$HOME/.ssh/下生成id_rsa和id_rsa.pub两个文件。 - 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)
- 访问 http://bear/gerrit,点击右上角的Sign in,用与wiki/jira一样的用户名/密码登录
- 上传SSH Keys ($HOME/.ssh/id_rsa.pub) (必须). 若第一次登陆跳过了此步,以后通过 右上角 Settings > SSH Keys进行设置。
- 下面表明上传的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