본문 바로가기
Hello World/DevOps

Gerrit - Commit Message에 Change-Id 입력하도록 설정

by Run DaramG 2020. 12. 16.

보통 Commit Message에 Change-id 가 없어도 Gerrit 에 커밋을 업로드시 자동으로 생성해주지만, 커밋 메세지에 Change-id 가 없으면 Gerrit 에 올리지 못하도록 설정할 수도 있다. 

Change-Id 는 Gerrit 이 변경사항을 구분하는 고유 식별값이다(Commit Id와는 다르다).

Browse - Repositories 클릭 -> All-Projects 클릭 (특정 Projecdt 만 적용할 수 도 있다.)

Repository Options 에서 Require Change-Id in commit message 를 False에서 True로 설정.

설정 후 Commit message 에 change-Id가 없는 상태로 Push 하면 아래와 같은 에러가 발생한다.

ERROR: missing Change-Id in message footer

[remote rejected] HEAD -> refs/for/master (commit : missing Change-Id in message footer)

이럴 경우, Message에 change-id 자동생성하는 hook 을 설치해야 하는데, Hint 에 나오는 명령어 두개를 순차적으로 입력 후 다시 Gerrit에 push 하면 해결 된다.

$gitdir=$(git rev-parse --git-dir); scp -p -P <PORT> <GERRIT>:hooks/commit-msg ${gitdir}/hooks/

$git commit --amend --no-edit

$git push origin HEAD:refs/for/master

 

댓글