1. 정의
Google 에서 개발한 웹UI 기반의 코드 리뷰 시스템이다.
이름의 유래애 대해서는 명확히 밝혀진것은 없다.
두가지 설이 있는데,
1) 네덜란드어 gerrit 에서 유래 : 네덜란드어로 gerrit 이라는 단어가 있는데, "spear rule" 또는 "ruler with a spear" 이라는 뜻이다. 검토와 판단의 과정을 통해 프로젝트에 기여하는 규칙을 관리하고, 이를 통해 프로젝트의 품질을 개선한다는 측면에서 상징적인 의미를 가진다는 설
2) Git + Error 의 조합 : Gerrit 은 결국 코드 저장소로 Git 을 내부적으로 관리하고 있기에 Git 으로 관리하는 에러 review 시스템의 조합이라는 설 , G + err(or) + it
2. 역사
Google 에서 AOSP (Android Open Source Project) 에 올라가는 코드들을 리뷰하기 위해 만들어진것이 시초이다. (안드로이드와 역사를 같이 한다)
3. 주요 특징
3-1> 점수제
리뷰어(Reviewer) 들은 리뷰이(Reviewee) 가 올린 수정 사항에 대해서 -2점~+2점까지 점수를 줄 수 있다.
최종적으로 +2 점을 받아야지만 리뷰이는 수정사항을 서버(origin)에 반영(merge) 할 수 있다.
3-2> open privacy
기본적으로 모든 리뷰는 public open 이다. 즉 내가 원하지 않더래도 내가 올린 리뷰는 불특정 다수가 볼 수 있고 , 커멘트도 할 수 있고, 심지어는 repository 설정에 따라서 점수까지도 줄수 있다.
(ex> 게릿허브에 가면 게릿허브를 사용하는 수많은 개발자들의 리뷰를 자유롭게 보고 커멘트 할 수 있다. https://gerrithub.io/q/status:open+-is:wip)
이는 기본적으로 Google 이 대표하는 open source 진영의 특징이라고 볼 수 있다.
3-3> Line 단위 리뷰 가능
전체적인 의견도 줄 수 있지만, 수정한 코드 라인별로 지적질을 할 수 도 있다.
개발자에게는 피가되고 살이된다.
4. Work flow
1> 개발자는 gerrit 의 project 를 로컬에 clone 해서 로컬 환경을 구축한다.
2> 수정사항이 준비되면 gerrit 에 push 한다.
3> gerrit website 는 2번에 push 된 수정사항에 대해서 web UI 를 만들어서 게시한다.
4> Reviewer 로 지정된 다른 개발자들은 Web UI 를 통해서 수정사항을 확인하고 자신의 의견을 개진한다.
5> 지적질 받은 부분이 있으면 , 말로 떼워도 되면 게릿 웹페이지에 답을 하고, 수정이 필요하다고 판단되면 수정하고 다시 푸쉬해서 2번부터 다시한다.
6> #2~#5 를 무한 반복하면서 +2점을 받을때까지 수정,논쟁을 계속한다.
7> +2 점을 받고, Verified+1 을 받으면 비로소 서버에 반영가능하게되고, 리뷰이가 직접 서버에 반영하면 수정사항 하나의 작업이 완료된다.
예시들
AriChoi 는
1> CI 빌드 성공해서 Verified+1 받고
2> 동료 리뷰어로부터 +1점도 받고
3> 최종 커미터가 +2점을 주어
4> 무사히 서버에 merge 를 잘 했다
'Gerrit > Gerrit 일반' 카테고리의 다른 글
1. SW 단상 (코드 리뷰) (0) | 2023.10.17 |
---|---|
3. Gerrit Workflow (0) | 2023.10.17 |
4. Git vs. Gerrit (0) | 2023.10.17 |
5. Gerrit 점수에 대한 단상 (2) | 2023.10.17 |
6. Change ID (0) | 2023.09.01 |