본문 바로가기
Infra/(Code Review) ReviewBoard

ReviewBoard User Guide

by 화뉘 2013. 4. 4.

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 Migration Guide  (0) 2013.04.04
Review Board Installation Guide  (0) 2013.04.04

댓글