ç»è¿ä¸æçæè ¾ï¼ç»äºå¨linux mint12ä¸å°apache2ï¼gitï¼gerrité ç½®æåã
åèèµæï¼
[url]http://m.oschina.net/blog/33017[/url]
[url]http://www.lifeyun.com/code-review-tools-installation-gerrit.html[/url]
[url]http://unethicalblogger.com/2009/12/07/code-review-with-gerrit-a-mostly-visual-guide.html[/url]
[url]http://gerrit.googlecode.com/svn/documentation/2.1.7/config-reverseproxy.html[/url]
[url]http://www.lifeyun.com/code-review-tools-installation-gerrit.html[/url]
[url]http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson[/url]
1.模åä½ç¨ä»ç»ã
gitæ¯åå¸å¼çæ¬æ§å¶å·¥å ·ã
gerritæ¯ä»£ç å®¡æ ¸å·¥å ·ï¼å½ç¶ä¹å æ¬äºä¸å¥æéç³»ç»ï¼googleåæçï¼ï¼ï¼gitåè¿ç¨ä»åºçrefs/for/*åæ¯æ交代ç æ¶ä¼å ç»è¿gerritï¼å®¡æ ¸éè¿åæä¼æ交å°ref/head/*åæ¯ã
mysql为gerritæä¾æ°æ®åºæ¯æã
apache2å¨è¿éç主è¦æ¯ä¸ºäºé ågerritçè´¦æ·è®¤è¯ï¼æä¾åå代çåè½ã
2.åå¤å·¥ä½ã
å®è£ gitï¼å®è£ apache2ï¼å®è£ mysqlï¼ä¸è½½gerritå ãï¼æ²¡æjdkçè¯ä¹éè¦å å®è£ åé ç½®ï¼ç½ä¸èµæå¾å¤ï¼
apt-get install git
apt-get install apache2
mysqlæ¬äººæ¯éè¿linuxçupdatamangerå·¥å ·å®è£ ãçæ¬æ¯5.1.10ã
éè¦æ³¨æçæ¯mysqlé»è®¤å®è£ 以åææå符éé½æ¯æä¸1ï¼è¯·ä¸è¦æ´æ¹æ¤é»è®¤è®¾ç½®ï¼æ¬äººçæè®ãããæ¹æutf8以åå®è£ gerritæ¶è·æ°æ®åºèæ¬åºéï¼ä¼å¯¼è´ä½¿ç¨è¿ç¨ä¸ä¼åºç°ä¸äºè«åçé误ã
å¨googecodeç½ç«ä¸ä¸è½½gerrit2.x.x.waræ件å¤ç¨ãè²ä¼¼è¿å¯ä»¥éè¿wgetå½ä»¤ä¸è½½ï¼æªå°è¯ã
å®è£ è¿ç¨æ²¡ä»ä¹ç¹æ®è®¾ç½®ã
说æï¼apache2å®è£ 好以åé»è®¤çå·¥ä½ç®å½å¨/var/www/ä¸ãé ç½®ç®å½å¨/etc/apache2ä¸ã
å¯å¨apache2ï¼/etc/init.d/apache2 start
åæ¢apache2ï¼/etc/init.d/apache2 stop
å¯å¨mysqlï¼/etc/init.d/mysql start
åå¨mysqlï¼/etc/init.d/mysql stop
mysqlå®è£ 好以åæ¯é»è®¤å¼æºå¯å¨çã
3.é ç½®è¿ç¨ã
1é¦å é ç½®æ°æ®åºãæ°æ®åºç±»åæ¯å¯éçï¼h2ï¼postgreä¹æ¯å¯ä»¥ç
æ§è¡mysql -uroot -på¯å¨mysqlæ§å¶å°ï¼æ§è¡å¦ä¸èæ¬
è¿éçæ°æ®åºç¨æ·gitåæ°æ®åºå称reviewdbå¯ä»¥é便åï¼åé¢ä¼ç¨å°ä»ä»¬ãå ³é®æ¯è¦è®¾ç½®charset=latin1ï¼ä¸è¦æ¹æutf8äºï¼æ¬äººä¸å¼å§å°±æ¯èªåèªæ该æ¹æutf8ï¼å¯¼è´gerritå®è£ å¼å¸¸ã
2 å®è£ gerritãéè¿æ§è¡å½ä»¤
[code]
java -jar /home/xx/gerrit-2.2.1.war init -d /home/xx/gerrt_sites
[/code]
è¿è¡å®è£ ãå®è£ è¿ç¨ä¸ä¼æ示è¾å ¥åç§ä¿¡æ¯ï¼å æ¬æ°æ®åºä¿¡æ¯çï¼è¿äºå¯ä»¥åèä¸é¢çé¾æ¥ã大é¨åé½å¯ä»¥ä½¿ç¨é»è®¤é ç½®ï¼å ³é®æ¯å¨éæ©è®¤è¯çæ¶å
请éæ©httpæ¹å¼ï¼ä¸è¦ä½¿ç¨openidæ¹å¼ï¼éæ©httpæ¹å¼åå¯ä»¥é ç½®apacheè¿è¡è®¤è¯ï¼éæ©openidæ¹å¼å认è¯éè¦å¤ç½é¾æ¥ï¼èä¸è²ä¼¼æbugï¼å¨[url] http://stackoverflow.com/questions/3705656/openid-with-gerrit-not-working[/url]ç½ç«ä¸æä»ç»ã
å®è£ å®æ以åéè¿æ§è¡/home/xx/gerrt_sites/bin/gerrit.sh start å¯å¨gerritã
æ¥ä¸æ¥éè¿æµè§å¨è®¿é®http://127.0.0.1:8080/ä¼è¿å ¥é误æ示页é¢ï¼æ示http请æ±æªå¸¦ææ头ãä½ ä¹è®¸ä¼å¥æªè¿éçhttpæå¡å¨æ¯åªéæ¥çãè¿ä¸ªå ¶å®å°±æ¯æå å¨gerrit.waræ件éçjettyæå¡å¨ã
æ¥ä¸æ¥é 置好apache2å°±è¡äºãæµè¯apahce2å®è£ æåå¯ä»¥éè¿æµè§å¨è®¿é®http://127.0.0.1/æ¾ç¤ºit works å°±æ¯æ好äºãapahce2çé»è®¤ç«¯å£æ¯80.
é¦å è¦æ¿æ´»ä»£ç模å
ç¶åå¨/etc/apache2/httpd.confä¸å å ¥ä¸é¢çå 容ï¼ä»ä¹ï¼httpd.confæ¯ç©ºçï¼ä¸è¦è§å¾å¥æªï¼åå§çhttpd.confæ¬æ¥å°±æ¯ä¸ªç©ºæ件ï¼
[code]
<VirtualHost *>
ServerName localhost
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/xx/gerrt_sites/etc/passwords
Require valid-user
</Location>
ProxyPass / http://127.0.0.1:8080/
</VirtualHost>
[/code]
è¿ééè¦æ³¨æçæ¯2个å°æ¹ï¼ä¸æ¯AuthUserFile /home/xx/gerrt_sites/etc/passwordsï¼è¿ä¸ªè·¯æ¯æåçæ¯ä¸ªå¯ç æ件ãæ¤æ件éè¿å½ä»¤çæ
è¿éçgerrit_fisrt_usernameå°±æ¯ä»¥åç¨æ¥ç»å½gerritçç¨æ·åã以åè¦ä¸ºgerirtå¢å ç¨æ·ï¼ä¹éè¦éè¿htpasswdå½ä»¤å¨æ¤passwordsæ件ä¸æ·»å ç¨æ·
äºæ¯ProxyPass / http://127.0.0.1:8080/ï¼è¿éçé ç½®å¿ é¡»å/home/xx/gerrt_sites/etc/gerrit.configæ件éé¢ç
å¹é ã/home/xx/gerrt_sites/etc/gerrit.configæ件éé¢ä¿åçæ¯å¨gerritå®è£ è¿ä¸è¾å ¥çä¿¡æ¯ï¼æ´æ¹é ç½®ä¹å¯ä»¥ç´æ¥ç¼è¾æ¤æ件ã
æ¬äººçgerrit.configå¦ä¸
è¿äºé½é 置好以åéå¯apache2ï¼éè¿æµè§å¨è®¿é®http://127.0.0.1/ï¼ä¼æ示è¾å ¥ç¨æ·åå¯ç ï¼è¾å ¥gerrit_fisrt_usernameåå¯ç ç»å½ï¼å°±ä¼èªå¨è·³è½¬å°http://127.0.0.1:8080/ï¼å¨æ¤é¡µé¢çå³ä¸æ¹ç¹å»settingsï¼ç¶åå¨å·¦ä¾§æ ç¹å»profile,å¯ä»¥çå°å½åç»å½çç¨æ·å为gerrit_fisrt_usernameï¼ç¶åç¹å»Contact Informationï¼å¨fullnameä¸é便è¾å ¥ååä¿åå³å¯ã第ä¸ä¸ªç»å ¥çè´¦æ·é»è®¤æ¯ç®¡çåè´¦æ·
æ£å¸¸æ åµä¸ï¼å¨é¡µé¢admin--ãprojectä¸åºè¯¥è½å¨å表项ä¸çå°ä¸ä¸ªAll-Projects项ã
ç¹å»All-Projectså¯ä»¥è®¾ç½®åç§æéãå¦æä½ çä¸å°All-Projects就说æä½ çgerritå®è£ åå¼å¸¸ï¼å¤åæ¯æä¸é¢æå°çæ°æ®åºå符é导è´çã
4.gerritå ¬é¥é ç½®
å¨shellä¸æ§è¡å½ä»¤
[code]ssh -p 29418 [email protected][/code]
æ示Permission denied (publickey).
缺å°å ¬é¥é ç½®ã
åè[url]http://www.lifeyun.com/code-review-tools-installation-gerrit.html[/url]
æ§è¡:
ssh-keygen -t rsa
çæå ¬é¥ï¼
æ¥ç:
cat ~/.ssh/id_rsa.pub
å°ä¸ªå ¬é¥æ·»å å°gerritä¸ã
è¿å ¥http://127.0.0.1:8080/ï¼ç¹å»å³ä¸è§settingï¼ç¹å·¦ä¾§æ SSH Public Keys
åç¹å»åè¾¹çadd keyï¼å°å ¬é¥å¤å¶å°éé¢ï¼ç¹å»addæ交ã
è¿ééè¦æ³¨æçæ¯éè¦å¤å¶çå符串æ¯å æ¬cat ~/.ssh/id_rsa.pubå½ä»¤æå°åºæ¥çææå 容ï¼å³å¼å¤´çssh-shaåç»å°¾ç[email protected]ä¹è¦ä¸èµ·å¤å¶
å次æ§è¡
[code]ssh -p 29418 [email protected][/code]
æåä½ ï¼çå°welcomeå°±è¡¨ç¤ºä½ å·²ç»é ç½®å®æ
å¦æé¾æ¥å¼å¸¸çè¯ï¼å¯ä»¥å é¤ï½/.ssh/knows_hostéè¯
æ§è¡
æ·»å ä¸ä¸ªé¡¹ç®ã
å¨webUIå°±å¯ä»¥çå°æ¤é¡¹ç®äº
5.ç®ä¾¿ssh
å¨ï½/.ssh/ç®å½ä¸æ°å»ºæ件config
å å ¥å 容å¦ä¸
以åæ§è¡
è¿ä¸ªå½ä»¤å°±å¯ä»¥ç®åçåæ
åæ¯å¦
ssh -p 29418 [email protected] gerrit create-project -n test_project
å°±å¯ä»¥ç®å为
è¿éç第2个åæ°gerritæ¯å ³é®å
6.æ£åºé¡¹ç®
éè¿ä¸é¢çå½ä»¤å建项ç®ä»¥åï¼é¤äºå¨httpï¼//127.0.0.1ï¼8080/å¯ä»¥çè§ä»¥å¤ï¼éè¿sshä¹å¯ä»¥æ¥çã
å°ä¼è¾åº2个项ç®å称
all_project
test_project
ä¸ä¸ªæ¯å ç½®çï¼ä¸ä¸ªæ¯åæ建ç«çãï¼ä½¿ç¨ç®¡çåè´¦æ·æè½çå°å ç½®çall_project项ç®ï¼
ä¸é¢å®¢æ·æºå°±å¯ä»¥æ£åºé¡¹ç®äºï¼
å½åç®å½ä¸å°±ä¼å¤åºä¸ä¸ªtestç®å½ï¼æ¤ç®å½å³æ¯ä½ éæå¡å¨ä¸æ£åºç项ç®ã
åæ¶shellä¸ä¼è§çå°å¦ä¸æ示
Cloning into test_project...
warning: remote HEAD refers to nonexistent ref, unable to checkout.
è¿æ¯å 为test项ç®æ¬èº«å°±æ¯ä¸ªç©ºé¡¹ç®ï¼æ以è¿ä¸åå¨å¤´æéã
gitççæ¬æ§å¶æ¹å¼å°±åcè¯è¨éé¢çé¾è¡¨æ¨¡åãæ¯ä¸æ¬¡æ交ä¼äº§çä¸ä¸ªæ°çèç¹ï¼èè¿ä¸ªæ°çèç¹åæ¶è¿æ个æååæ¥èç¹çé¾æ¥ãæ¯ä¸ä¸ªå¤´æé代表ä¸ä¸ªåæ¯ã头æéæåçæ¯é¾è¡¨çæåä¸ä¸ªèç¹ãå ·ä½ç模åå¯å¨progit.pdfä¸æ¾å°ã
æ¯è¿äºï¼æ¯åæ¥ã
8.第ä¸æ¬¡æ交ã
å¨åæ¤æ£åºçtestç®å½ä¸æ°å»ºä¸ä¸ªæ件readme.txt
æ§è¡ï¼
æè æ§è¡
è¿ä¸¤ä¸ªå½ä»¤æ¤å¤çææç¸é ï¼ä¹æ以说âæ¤å¤âï¼æ¯å 为addå½ä»¤æ¯ä¸ªå¤ä¸ªåè½å½ä»¤ï¼è¿æå ¶ä»å«ä¹ï¼èè¿éçgit stage ç¸å½äºsvn add
æ¥ä¸æ¥å°æ件æ交å°æ¬å°ä»åºï¼å é ç½®gitçé»è®¤ç¼è¾å¨
å å ¥å¦ä¸å 容;
并ä¿åï¼ä»¥åæ¯æ¬¡æ交çä¿¡æ¯ä¸å¯¹ä¼å¸¦ä¸ä»¥ä¸æ交人çæè¿°ä¿¡æ¯ï¼å¹¶ä¸è®¾ç½®äºç¼è¾å¨ä¸ºvim,æ¹ä¾¿ç¼ålog
æ§è¡ï¼
å¨vimä¸å å ¥log并ä¿åæ¨åºï¼å³å®æä¸æ¬¡æ交ï¼æ³¨ææ¤æ¬¡æ¯æ交å°æ¬å°ä»åºï¼åæå¡å¨æ²¡æå ³ç³»ã
9.pushå°è¿ç¨ä»åº
åè[url]http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson[/url]
æ§è¡
originåmasterå¯ä¸æ¯ä»ä¹å ³é®åï¼ä»ä»¬åªæ¯é»è®¤çå称èå·²ãæ¯å éçä»åºçé»è®¤å«åï¼éè¿git clone ssh://[email protected]:29418/test_project.gitå é以åï¼å°±ä¼äº§çè¿ä¸ªé»è®¤å称ï¼ç®åç¹è¯´å°±æ¯origin=ssh://[email protected]:29418/test_project.git
èmasteræ¯æ¬å°ä»åºçå½ååæ¯å称ãéè¿git checkout branchnameå¯ä»¥åæ¢å½åå·¥ä½åæ¯ï¼è¿ä¸ªåé¢å说ã
git push origin masteræ¤å½ä»¤å³æ¯å°å°å½ååæ¯åæ¥å°è¿ç¨ä»åºä¸å»ãä¸è¿æ¤å½ä»¤å¨gerritä¸æ¯ä¼å¤±è´¥çãåé¢å说ã
ç»æå´æ¾ç¤ºé误ï¼
åå æ¯gerritä¸å 许ç´æ¥å°æ¬å°ä¿®æ¹åæ¥å°è¿ç¨ä»åºã客æ·æºå¿ é¡»å pushå°è¿ç¨ä»åºçrefs/for/*åæ¯ä¸ï¼çå¾ å®¡æ ¸ãè¿ä¹æ¯ä¸ºä»ä¹æ们éè¦ä½¿ç¨gerritçåå ãgerritæ¬èº«å°±æ¯ä¸ªä»£ç å®¡æ ¸å·¥å ·ã
æ¥ä¸æ¥æ´è¯¥pushçå°åï¼
æ¤å½ä»¤å®é æ¯æ´æ¹çæ¯æ¬å°ä»åºtest_project/.git/configæ件ã
å次puh
è¿æ¬¡ä¸è¦å masterï¼
ç»æååºé
解å³åæ³ï¼
å次æ§è¡
git push origin
æåä½ ï¼pushæåã
10ãå®¡æ ¸ï¼éªè¯ãæ交ã
pushæå以åï¼è¿å ¥http://127.0.0.1/å¼æwebçé¢
ç¹å»å·¦ä¸çallï¼åç¹openï¼
ä¼çå°ææå¸¦å®¡æ ¸çcommit
å³ä½ å¨æ¬å°pushä¹åæ§è¡äºå¤å°æ¤commitï¼è¿éå°±ä¼ååºå¤å°ä¸ªcommitid
é¦å éè¦ä¸ºç¨æ·é ç½®æéä¿¡æ¯ï¼å¨admin--ãprojects--ãAll-Projects--ãaccessä¸ç¹å»
editï¼ç¶å设置æéï¼å ·ä½è®¾ç½®æ¹æ³å°±ä¸æè¿°äºï¼è¯´æ¥è¯é¿äºãåºè¦æ¯è¦ä¸ºrefs/heads/*æ·»å
Label Code-Review
Label Verified
Submit
+1å+2æéï¼å¹¶ä¸ºæ¯ä¸ªæéæ·»å ç¨æ·ç»ã
æéé 置好以åï¼
ç¹å»æ个commitidï¼å¨ç¹å»reviewï¼ç¶åç¹å»pulishæè submit
顺åºæ¯å å®¡æ ¸ï¼åéªè¯ï¼åæ交ãç¸ä¿¡å¤§å®¶å¤ç¢ç£¨ç¢ç£¨å°±ç¥éæä¹æä½äº
æ交以åï¼
åæçgit push originæç®çæ£çæ交å°äºè¿ç¨ä»åºä¸ã
11.ä¸è½½ã
å ¶ä»å®¢æ·æºå°±å¯ä»¥éè¿git colneï¼éå¤ä¸é¢çè¿ç¨ï¼æè git fetchæ¥ä¸è½½è¿ç¨ä»åºï¼ä¸è½½ä¸æ¥çå 容就å å«äºåæpushä¸å»å 容ãå½ç¶ï¼åææ¯è¦ä¸ºå ¶ä»å¼åè å建账æ·å¹¶æ·»å æéï¼è¿äºå°±ä¸è¯´å¦ï¼å¯ä»¥åègitæå¨æåè¿æ¬ä¹¦ï¼æä»ç»gerritçå 容
è¿æ ·å³å®æäºä¸æ¬¡ä»£ç çå ±äº«è¿ç¨ã
gitæä½è¯·åèé件ä¸æææ¡£ï¼æ¨èï¼
详ç»