Web UI

    Review Request를 보내기 위해서는 Repository의 Diff File이 필요하다.
    • Commit 하기 전의 Source Code에 대한 Diff File을 만들기 위해서는 다음과 같은 명령어를 실행한다.  

#> git diff --full-index > diff.txt 

    • Local Repository의 Staging 단계와 Central Repository인 Github Source 간의 Diff File을 만들기 위해서는 다음과 같은 명령어를 실행한다.

 #> git diff --full-index --cached > diff.txt 

git diff를 할 때 반드시 --full-index 옵션은 포함되어야 한다.
  • diff.txt File이 만들어 지면 Local PC로 이동시킨다.
  • Review Board Web Site로 접속한다.

  • Main Page에서 [New Review Request] 를 클릭한다.

  • 해당 Repository를 선택하고 <Diff> 버튼을 클릭해서 Diff File을 선택한다.

  • Diff File이 첨부되면 <Create Review Request> 버튼을 클릭한다.

  • Review Request 페이지로 넘어가면 Summary, Branch(Develop), Review 검토자 or 그룹, Description을 기술하고 <OK> 버튼을 클릭한다.
    • Text Area에 Text 입력 후, 반드시 <OK> 버튼을 클릭해야 합니다.

  • Review Request를 다 기술한 후, <Publish> 버튼을 클릭한다.

  • Review Request가 완료된 것을 확인한다.

  • Review 검토자가 접속을 하면 Code Review Request가 온것을 확인할 수 있다.

  • 요청한 Review를 클릭하면 Review Request Page로 이동하는데 [View Diff]를 클릭하면 Diff 화면을 볼 수 있다.

  • Diff Page에서 Review - "line별 Comment 가능" 나 Comment로 Review 요청자와 Review 검토자가 Communication을 한다.
  • Communication 중 Review 요청자가 Source Code를 변경한 후 [Update Diff]를 클릭한 후, 새롭게 Diff 된 File을 업로드 하면 된다.

  • Review가 완료되면 Review 검토자가 [Ship It!]을 클릭하면 된다.

  • [Ship It!]을 클릭하면 Comment가 추가되는 것을 확인할 수 있다.

  • Review가 완료된 후, Review 요청자의 Main Page에서 [Outgoing Reviews]를 확인하면 Review 완료된 Requests를 확인할 수 있다.

  • 해당 Review를 클릭하면 Comment에 Review가 완료 되었다는 [Ship It!] Comment를 확인할 수 있다. Review가 완료되면 Review 요청자는 [Close]-[Submitted]를 클릭한다.

  • Comment 작성 후, <OK> 버튼을 클릭한다.

  • Main Page의 All My Requests를 클릭하면 완료된 Review List를 확인할 수 있다.

post-review

post review Flow

Overview

post-review는 review-board에 리뷰요청을 생성하여 보내는 Command-line(Windows, Linux, MacOSX) 툴이다. 이 것은 diff를 자동으로 생성을 하고 새로운 리뷰요청을 만들어 지정된 review-board 서버에 올리거나 기존의 리뷰요청을 갱신을 할 수 있다.

Installation

prerequisites
  • Python
  • easy_install

easy_install이 설치되어 있으면 다음 과 같은 명령어로 설치를 쉽게 할 수 있다.

#> easy_install -U RBTools  

Usages

git 을 기준으로 설명한다.

1. review-board 서버 주소 설정
사용하기 전에 사용하는 Review-board 서버의 주소를 설정해 주어야 한다. 다음과 같이 한다.

 #> git config reviewboard.url http://rb.nexrcorp.com/

또는 $ .git/config 파일에 다음과 같은 구문을 바로 넣어주어도 된다.

[reviewboard]
  url = http://rb.nexrcorp.com 
 

2. 리뷰를 진행할 커밋들을 reivew-board에 리뷰요청을 만들어 올린다.

 #> post-review 

그런 다음 리뷰보드 사이트로 들어가면 >All review requests 에 draft상태의 리뷰요청을 확인 할 수 있다. 거기서 >view-diff로 diff을 확인하고 summary와 리뷰어 설명등을 적고 publish하면 모든 과정이 완료가 된다.

Tips

Q. 등록된 repository가 없다는 메세지가 나오면서 리뷰 요청이 안될 경우
A. review-board는 git 프로토콜만 지원한다. https://로 git repository 설정이 안되어 있는지 확인을 해야 한다.
확인 방법
.git/config 파일을 열어 remote origin의 url값을 확인한다. nexr-collector 기준으로 "https://github.com/nexr/nexr-platform-collector.git" 로 되어 있다면 "git@github.com:nexr/nexr-platform-collector.git"로 바꾸어 주어야 한다.

Q. diff를 잘 못 올려 기존의 review-request에 다시 올리고 싶다.
A. diff를 잘 못 설정 했거나 리뷰요청 여러 속성값을 잘못 올렸을 때 새로운 리뷰요청이 아닌 기존의 리뷰요청을 갱신하고 싶을 때는 다음과 같이 리뷰요청 아이디를 적어주면된다.

#> post-review -r [review-request-id]
ex) 
#> post-review -r 111 -summary "새로운 요약"

Q. draft가 아닌 바로 publish를 하고 싶다.
A. 파라미터를 지정함으로 써 리뷰어, 요약, 설명등을 바로 커맨드 라인에서 지정을 할 수 있다. 

#> post-review -p -o --target-people="jesse.lee" --summary="this is test review-request" --branch="develop"

위와 같이 리뷰어(target-people), 요약(summary), 브랜치(branch)등을 커맨드 라인에서 지정을 하고, -p or --publish로 draft 상태가 아닌 바로 리뷰요청을 할 수 있다.
-o 옵션을 주면 post-review후 바로 해당 페이지를 포함한 디폴트 웹브라우저가 뜬다. 자세한 내용은 post-review -h 로 볼 수 있다.

Q. 특정 commit 의 diff만으로 리뷰 요청을 만들고 싶다.
A. post-review로 리뷰요청을 하면 기본적으로 master에서 HEAD 에서 진행된 모든 커밋들의 diff가 생성되어 요청이 된다. 이 때 지정된 commit 만으로 diff를 생성할 수 있게 --parent 옵션을 제공한다.

1 - 2 <- master
      \
        3 - 4  <- branchA
             \
              5 - 6 <- branchB

위와 같은 상태고 개발은 branchB에서 해서 5, 6커밋의 diff만 리뷰요청으로 보내고 싶을 때 아래와 같이 하면 3, 4 커밋은 제외가 되고 5, 6커밋에 대한 diff만 생성되어 리뷰요청이 만들어진다.

 #> post-review --parent=branchA
또한 6 커밋에 대한 diff만을 올리고 싶을 때는

#> post-review --parent="5's hash code"
or 
#> post-review --revision-range="5's hash code"

 

위와 같이 5 커밋의 hashcode 를 써주면 된다. 또는 --revision-range 속성을 이용해도 된다. 커밋의 해시코드 값은 *git log*를 이용하여 볼수 있다.다.

 

 

 

신고

'Infra > (Code Review) ReviewBoard' 카테고리의 다른 글

ReviewBoard User Guide  (0) 2013.04.04
ReviewBoard Migration Guide  (0) 2013.04.04
Review Board Installation Guide  (0) 2013.04.04

Precondidation

  • Migration 하려는 Review Board의 Version이 일치해야 한다. 1.6.x와 1.7.x는 DB Table DDL이 변경되기 때문에 주의해야 한다.

MySQL Backup

  • MySQL에 생성된 DB를 Backup한다.

 #> mysqldump -uroot -ppassword --databases reviewboard > rb_backup.sql 

Data Backup

  • Data는 /var/www/reviewboard/htdocs/media/uploaded, /var/www/reviewboard/data Directory를 Backup한다.

 #> cd /var/www/reviewboard/htdocs/media/
#> tar zcf rb_backup_upload.tar.gz uploaded 
#> cd /var/www/reviewboard/
#> tar zcf rb_backup_data.tar.gz data  

Review Board 설치

  • 설치는 Review Board Installation Guide를 참조해서 한다.

MySQL Migration

  • Backup한 DB Data를 새로 설치한 Review Board의 DB에 Export 한다.

 #> mysql -uroot -pnexr4101 < rb_backup.sql 

Data Migration

  • Backup한 Data를 새로 설치한 Review Board의 동일한 Direcoty에 복사한다.

#> tar zxf rb_backup_upload.tar.gz 
#> tar zcf rb_backup_data.tar.gz
#> cp -r /var/www/reviewboard/htdocs/media/
#> cp -r /var/www/reviewboard/ 

추가 작업

  • Notification을 위해 SMTP 설정을 해준다.
신고

'Infra > (Code Review) ReviewBoard' 카테고리의 다른 글

ReviewBoard User Guide  (0) 2013.04.04
ReviewBoard Migration Guide  (0) 2013.04.04
Review Board Installation Guide  (0) 2013.04.04

Tool Info

  • Web 기반의 Code Review Tool
  • MIT License의 Free Software
  • Recommend OS : Ubutu, Fedora
  • http://www.reviewboard.org
  • Required Open Port : 80, 22

Preinstall

  • Review Board는 python setuptools를 통해 download 할 수 있는 package로 제공된다.
  • Review Board를 설치하기 전에 Database와 Web Server를 설치해야 한다.
  • Database는 다음과 같이 지원한다.
    • MySQL v5.0.31 or newer
    • PostgreSQL
    • sqlite v3
  • Web Server는 다음과 같이 지원한다.
    • Apache + mod_wsgi, fastcgi, or mod_python
    • lighttpd + fastcgi
  • Guide에서는 MySQL과 Apache + mod_python으로 설치할 것이다.
    • Install은 개발사가 Recommend 한 OS중 Ubutu로 설치할 것이다.

#> apt-get update  

#> apt-get install build-essential  

#> apt-get install mysql-server
#> apt-get install libmysqlclient-dev
#> apt-get install apache2
#> apt-get install libapache2-mod-python 

Review Board Install

Installing Python Setuptools

  • Review Board를 설치하기 전에 Python setuptool 0.6c9 또는 그 이상의 version이 필요하다.

#> apt-get install python-setuptools  


Installing Python Development Headers

 #> apt-get install python-dev 

Installing memcached

  • Review의 High Performance를 위해서 Caching Server인 Memcached를 설치한다.

 #> apt-get install memcached #> easy_install python-memcached 

Installing patch

  • pathch는 Reviewboard의 diff view를 동작하는데 필요하다.

 #> apt-get install patch 

Installing Review Board

  • Review Board를 설치하기 위해서는 요구되는 Dependency가 있다.
  • Djblets, Django-Evolution, Django, flup, paramiko and Python Imaging Library
  • 이것들은 Review Board를 설치할 때 자동적으로 설치된다.
  • 설치하는 Review Board Version은 1.6.16이다 1.7.x 부터는 site setup이 약간 변경되니 유념하기 바란다. 만약 최신 버전이 아닌 특정 버전을 설치하고자 한다면 다음과 같이 실행한다.

 #> easy_install http://downloads.reviewboard.org/releases/ReviewBoard/1.6/ReviewBoard-1.6.16-py2.7.egg 

#> easy_install ReviewBoard 

Installing Database Bindings

 #> apt-get install python-mysqldb 

Installing Source Control Components

  • NexR에서는 SCM(Source Code Management) Tool로 git을 사용하기 때문에 git을 설치하자.

 #> apt-get install git-core 

Creating a Review Board Site

  • Review Board를 설치했다면 반드시 site를 생성해야 됩니다.
    Beginning Installation
  • site를 생성하기 위해서는 rb-iste install 명령어를 사용한다.
  • site setup에 대한 question은 설정에 맞게 선택하거나 입력한다.

 

 #> rb-site install /var/www/reviewboard

-------------------------------------------------------------------------------------------------- Domain = input IP or Domain Name 
Root Path = / 
Uploaded Media URL = media/ 
Database Type = mysql 
Database Name = reviewboard 
Database server = localhost 
Database username = root 
Database Password = input db password 
Cache Type = memcache 
Memcache Server = memcached://localhost:11211/ (This should be the default) 
Webserver = apache 
Python loader = modpython 
Admin account      
     Username : admin     
     Password : input password     
     E-Mail Address : input admin's email address
--------------------------------------------------------------------------------------------------

Changing Permissions

  • Review Board는 sitedir/htdocs/media/uploaded 와 sitedir/data 및 하위 directory에 write 할 수 있어야 한다. 

 #> chown -R www-data /var/www/reviewboard/htdocs/media/uploaded
#> chown -R www-data /var/www/reviewboard/data
#> chmod 777 /var/www/reviewboard 

Web Server Configuration

 #> cp /var/www/reviewboard/conf/apache-modpython.conf /etc/apache2/sites-enabled/reviewboard  
#> /etc/init.d/apache2 restart 

RBTools Install

  • Review Board를 사용하기 위해서는 2가지 방법이 있는데, diff를 이용해서 diff file을 직접 Review Board에 올리는 방법과 post-review를 사용하는 방법이다.
  • diff file을 Review Board를 올리는 방법에는 별도의 작업이 필요없지만, post-review를 사용하기 위해서 RBTools를 설치해야 한다.

 #> easy_install -U RBTools 


 

 

신고

'Infra > (Code Review) ReviewBoard' 카테고리의 다른 글

ReviewBoard User Guide  (0) 2013.04.04
ReviewBoard Migration Guide  (0) 2013.04.04
Review Board Installation Guide  (0) 2013.04.04

+ Recent posts