Gitlab을 사용하여 코드 검토를 설정하는 방법은 무엇입니까?


85

Gitlab을 사용하여 코드 검토를 어떻게 설정합니까? Gitlab 웹 사이트에 기능으로 나열되어 있지만 설정 방법에 대한 지침을 찾을 수없는 것 같습니다.

내 검색 중 일부는 '병합 요청'이 갈 길이라고 표시했지만 제한적이라는 것을 알았습니다. 발행 된 병합 요청은 한 브랜치와 다른 브랜치 간의 모든 커밋을 보여줍니다. 각 개별 커밋에 대해 생성 된 diff 만 볼 수있는 것 같습니다. 예를 들어 검토 할 파일이 있다고 가정 해 보겠습니다. 새 파일이지만 dev 브랜치에서 10 개 이상의 커밋에 대한 변경 사항을 제출했습니다. 통합에서 해당 개발 브랜치에 대한 병합 요청을 발행하면 각각 파일에 대한 증분 변경 사항을 보여주는 10 개의 커밋이 표시됩니다. 전체 내용을 검토하고 싶습니다. 새롭다!

내가 여기서 잘못된 나무를 짖는 건가요? GitLab에서 사용할 수있는 실제 코드 검토 도구가 있습니까, 아니면 병합 요청이 진행 중인지, 아니면 잘못 사용하고있는 경우입니까? 여기서 적절한 코드 검토를 설정하는 가장 좋은 방법은 무엇입니까?


1
GitLab 6.4와 side-by-side diff보기는 코드 검토에 도움이 될 수 있습니다. 아래 내 답변 참조
VonC

GitLab 13.1 (2020 년 6 월)을 사용하면 이제 병합 요청 검토가 있습니다. 참조 아래에있는 내 편집 대답
VonC

답변:


24

참고 : GitLab 6.4부터 side-by-side diff보기 를 사용할 수 있습니다. " pull request 5308 "을 참조하십시오 .

(2013 7 월)파일 수준에서만 각 줄에 대해 아직 주석을 달 수 없습니다.
Daniel Sokolowski주석에서 줄당 주석이 이제 지원 된다는 것을 언급합니다 (2014 년 9 월).

팀 구성원은 병합 요청에 대해 일반적으로 또는 줄 설명이있는 특정 줄에 대해 설명 할 수 있습니다.

여전히 코드 검토 활동에 도움이 될 수 있습니다.

https://f.cloud.github.com/assets/4224518/1558702/e0fe633a-4fa3-11e3-9388-3f3e445cb6d4.png


6 년 후, GitLab 13.1 (2020 년 6 월) :

Core로 이동 된 병합 요청 검토

원래 GitLab 11.4에서 GitLab Premium 기능으로 도입 된 Merge Request Review를 사용하면 병합 요청 검토자가 다음을 수행 할 수 있습니다.

  • 한 번에 여러 댓글 제출,
  • 병합 요청 작성자에 대한 알림 소음 줄이기
  • 보다 일관되고 간소화 된 검토 프로세스를 허용합니다.

https://about.gitlab.com/images/13_1/batch_comments.png

도입 이후 구매자 기반 가격 책정 모델 에서 그 자리를 재평가했으며 13.1의 일부로이 기능이 이제 GitLab Core로 이전되었음을 발표하게되어 기쁩니다.

문서문제 참조


이제 줄별 주석이 지원됩니다. "팀 구성원은 병합 요청에 대해 일반적으로 또는 줄 주석이있는 특정 줄에 주석을 달 수 있습니다." ( about.gitlab.com/2014/09/29/gitlab-flow )
다니엘 Sokolowski

1
@DanielSokolowski 좋아요! 더 많은 가시성을 위해 답변에 귀하의 의견을 포함했습니다.
VonC

9

저는 거의 마찰없이 2 개월 이상 Gitlab에서 코드 리뷰를 해왔습니다. 개발자가 새 커밋을 푸시 할 때마다 이메일 알림을 보내도록 rss2email 을 설정 했습니다 . 그런 다음 Gitlab의 주석 기능을 커밋에 사용하여 푸시 된 코드에 대한 주석을 작성합니다.

불행히도 Gitlab은 파일 자체에 대한 주석을 허용하지 않고 커밋에서만 허용합니다 (Github처럼). 이전 커밋에서 놓친 부분을 주석 처리해야하는 상황에 처할 때마다 blame 도구를 사용하여 주석 처리 할 코드 섹션을 도입 / 변경 한 커밋을 찾습니다.

완벽하지는 않지만 지금까지는 잘 작동합니다.


1
rss2email 대신 Gitlab 알림을 사용하여 푸시에 대한 알림을받을 수 있습니다.
vadipp

동일한 문제 / 해결 방법이 있습니다. diff 또는 파일보기의 특정 행을 비난하는 오른쪽 커밋에 주석을 추가 할 수있는 멋진 기능 추가가 될 것이라고 생각합니다 (웹 인터페이스에서 파일이나 diff를 검색하는 것이 아니라 비난을 실행하지 않습니다).
AlejandroVD

2

제출 된 코드는 다른 저장소 또는 현재 저장소에 대한 병합 요청에서 볼 수 있습니다.
http://demo.gitlab.com/diaspora/diaspora/commits/master

그런 다음 커밋 된 파일 변경 (버튼 Reply) 또는 전체 커밋 에 주석을 추가 할 수 있습니다.

http://demo.gitlab.com/diaspora/diaspora/commit/42f47626890218a180870bc3f44ec57625b0779c

그 결과 통신은 코드 검토 입니다. 그러나 개인적으로 가능한 한 대면 통신으로 한 대의 PC에서 코드 검토를 수행하고 결과를 기록하거나 더 형식이 필요할 때 도구를 사용하는 것이 좋습니다.

커밋이 많은 파일 개정의 경우, 예를 들어 http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md를 사용 blame하여 누가 무엇을했는지 이해합니다. 그러나이보기에는 의견을 교환하고 추가 할 수있는 옵션이 없습니다. 이 경우 주석으로 변경 사항을 추가하는 것이 좋습니다.


7
귀하의 답변에서 첫 번째, 두 번째 및 마지막 링크에 대해 404를 얻습니다.
Bryan Oakley

1
홈페이지에 나와 있듯이 demo.gitlab.com "IS A SANDBOX – 매시간 재설정됩니다"라고해서 모든 예제가 지워졌습니다. 예를 들어 이것은 좋은 수단이 아닙니다.
Uriah Blatherwick 2014-06-11

예, 적절한 예를 들어 설정을 다시 고려하십시오. 귀하의 대답은 일반적으로 확실한 조언 인 것 같습니다.
데이터

0

예. 병합 요청은 피어 리뷰가 수행되는 방법입니다.

모든 커밋의 변경 사항을 표시하는 'diff'탭이 있어야합니다 (여기에 언급 됨 : http://youtu.be/DyAX8ws5OIc?t=3m2s ).

이 비디오는 또한 피어 리뷰에 사용할 수있는 방법을 잘 설명합니다.


0

코드 검토의 일반적인 사용 사례는 마스터 또는 이와 유사한 것으로 병합하기 전에 분기의 코드를 검토하는 것입니다. 프로젝트를 개발하고 팀의 모든 사람이 모든 코드를 검토하기를 원하는 상황이 있습니다.

내가 한 일은 :

첫 번째 커밋을 확인하고 변경하고 커밋하고 푸시합니다.

git co -b FIRST_COMMIT eb67f06c2b3222c0219214b176c41922bc454881
vi README.md
git add README.md
git ci -m "First commit modified so can get full diff against it"
git push --set-upstream origin FIRST-COMMIT

마지막 커밋을 확인하고 변경하고 커밋하고 푸시합니다.

git co -b master
vi README.md
git add README.md
git ci -m "Last commit modified so can get full diff against it"
git push --set-upstream origin LAST-COMMIT

GitLab / GitHub에서 pull 요청을 생성합니다.

  • LAST_COMMIT에서 FIRST_COMMIT로 병합됩니다.

나를 위해 작동합니다!


저장소에 두 개의 "정크"브랜치가 있고 마스터 브랜치에서 주석을 추적하지 않는 것이 아닌가요? 주석에 코드 변경이 필요한 경우 마스터에 병합합니까?
user2084572

예, 삭제하기 쉬운 FIRST_COMMIT 및 LAST_COMMIT 분기가 있습니다 ( git br --delete --force origin FIRST_COMMIT LAST_COMMIT; git br --delete --force FIRST_COMMIT LAST_COMMIT). 마스터에서 다른 분기를 사용하여 변경 사항을 포함하거나 별도의 문제를 수동으로 생성 할 수 있습니다. 그리고 나중에 너무 많은 피드백이있는 경우 하나 이상의 분기 (예 : 문제당 하나)를 만듭니다.
HankCa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.