티스토리 뷰

반응형

Git 관련 포스트인데 내용이 길다 보니 아마 2편 이상으로 나눠서 작성할 것 같습니다.

대부분의 OpenStack 개발 도구(예: git-review)들은 Windows 환경에서 잘 돌아가지 않으니, 리눅스 환경을 기준으로 포스팅합니다.

본 포스트는 Git 설치법과 OpenStack에 contribute 할 때의 커밋 메시지에 대해서 소개합니다.

이것저것 알아보면서 느낀 것이지만, 아무리 공식 문서라도 프로젝트나 버전마다 권장하는 내용이 조금씩 다르니 참고 바랍니다.


 

본 포스트는 우리가 Account Setup 가이드를 완료한 상태라고 가정합니다.

Git


Git이란?

Git은 OpenStack 커뮤니티가 소스 코드와 문서의 변경사항을 관리하기 위해 사용하는 무료 오픈 소스 분산 버전 컨트롤 시스템이다.

 

설치

Debian, Ubuntu 또는 Mint 같은 리눅스 배포판들은 터미널을 열고 다음을 입력합니다.

1
sudo apt install git
cs

 

Git 설정하기

깃을 설치했다면 우리는 환경을 설정할 필요가 있습니다. 터미널을 열고 다음 명령을 통해 이름, 성 그리고 이메일 주소를 입력하세요. 이것을 통해 우리의 contribution이 식별됩니다.

1
2
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"
cs

Account Setup 단계에서 사용한 것과 동일한 이메일을 사용하세요.

 

 

Commit Message


커밋 메시지들은 리뷰어(reviewer)들이 가장 첫 번째로 보는 것들이고 git log 안에서 설명으로 사용됩니다. 커밋 메시지들은 레포지토리 안에서 변경 사항들의 기록에 대한 설명을 제공합니다. 커밋 메시지들은 패치(patch)가 한 번 적용이 되면 변경할 수 없습니다.

형식:

  • 요약 (Summary Line)
  • 빈 줄
  • 내용 (Body)
  • 빈 줄
  • 태그 (Tags)

 

요약 (Summary Line)

요약은 패치 내용을 간략하게 설명합니다. 문자 제한은 50자입니다. 요약은 마침표로 끝나지 말아야 합니다. 만약 변화가 한 번의 커밋으로 끝나지 않는다면 커밋 메시지를 WIP(Work in Progress)로 시작하세요.

 

내용 (Body)

내용은 해결하고자 하는 이슈에 대한 설명, 고쳐야 하는 이유, 설루션에 대한 설명, 코드 구조를 어떻게 개선하는지에 대한 추가적인 설명, 또는 다른 연관 있는 패치에 대한 참조 등을 포함합니다. 각 줄은 72자로 제한됩니다. 내용은 독자가 문제의 원인을 이해한다거나, 외부 사이트에 접속이 가능하다는 가정 없이, 문제와 관련하여 모든 중요한 정보를 포함하고 있어야 합니다.

 

태그 (Tags)

태그는 다른 도구들로 변경 사항들을 연결하는 데 사용되는 참조입니다.

다음의 태그들은 필수적으로 요구됩니다:

  • Change-Id 줄은 변경사항을 설명하는 고유의 해쉬입니다. Change-Id는 Git commit hook에 의해서 자동적으로 생성됩니다. 이 줄은 리뷰 피드백에 따라오는 커밋을 rebase 할 때 변경되면 안 됩니다. 왜냐하면 이 줄은 패치 버전을 추적하기 위해 Gerrit에 의해 사용되기 때문입니다.

StoryBoard 명시 태그:

  • Task: 변경사항에 의해 생성되는 StoryBoard 내의 작업 번호. 이 태그는 자동으로 그 작업을 'Review' 상태로 업데이트하고, 패치를 적용할 때 우리에게 배정됩니다.
  • Story: 패치가 적용되고자 하는 StoryBoard 내의 스토리 번호. 이 태그는 우리의 패치를 참조하는 링크와 함께 스토리에 코멘트를 달 것입니다.

Launchpad 명시 태그:

  • Closes-Bug: 만약 커밋이 참조하는 버그를 완전하게 해결하고 이슈를 닫고자 한다면 Closes-Bug 태그를 사용하세요. 태그 숫자로 해당 버그의 Launchpad의 ID를 사용하세요; Gerrit이 자동으로 그 버그로 링크를 생성할 것입니다.
  • Partial-Bug: 만약 커밋이 버그의 부분적인 해결과 추가적인 작업이 필요하다면 Partial-Bug 태그를 사용하세요. 태그 숫자로 해당 버그의 Launchpad의 ID를 사용하세요; Gerrit이 자동으로 그 버그로 링크를 생성할 것입니다.
  • Related-Bug: 만약 커밋이 단순히 참조된 버그와 연관이 있다면 Related-Bug 태그를 사용하세요. 태그 숫자로 해당 버그의 Launchpad의 ID를 사용하세요; Gerrit이 자동으로 그 버그로 링크를 생성할 것입니다.
  • Partial-Implements: 만약 커밋이 Launchpad blueprint를 부분적으로 구현한다면 Partial-Implements 태그를 사용하세요. 태그 ID로써 blueprint의 이름을 사용하세요.
  • Implements: 만약 커밋이 Launchpad blueprint를 완전히 구현한다면 Implements 태그를 사용하세요. 태그 ID로써 blueprint의 이름을 사용하세요.

만약 해당 프로젝트가 StoryBoard를 사용한다면 StoryBoard의 태그를 사용하고, Launchpad를 사용한다면 Launchpad의 태그를 사용하면 됩니다.

 

다음의 태그들은 선택사항이지만, 패치에 적용될 수 있으면 사용하는 것이 권장됩니다.

이는 포스팅하지 않으니, 아래의 주소를 참고하기 바랍니다.

  • DocImpact
  • APIImpact
  • SecurityImpact
  • UpgradeImpact
  • Depends-On

 

본 포스트는 다음 주소를 참고하였습니다.

반응형
댓글