버전 관리의 베스트 프랙티스

버전 관리 정책을 만들 때 고려해야 할 원칙

용어 정리

간결한 서술을 위해 몇 가지 용어를 축약해서 사용한다.

코드 수정 방법

일반적인 수정 사항

새로운 기능을 추가하거나, 버그를 수정하는 등의 일반적인 수정 사항이고, production에 바로 deploy해도 별 문제가 없는 것으로 추정되는 변경사항의 경우.

  1. trunk에서 최신 소스코드 가져오기 (svn update, git pull, ...)
  2. 코드 수정, 리팩터링, 테스트
  3. trunk에 커밋 (svn commit, git add & git commit & git push)

모험적인 수정 사항

수정된 코드가 제대로 동작하지 않을 가능성이 있거나, 다른 기능을 망가뜨릴 가능성이 있는 것으로 추정되는 경우. 그 외에 여러 가지 개발자가 코드가 안전한지 확신할 수 없는 경우.

  1. trunk에서 최신 소스코드 가져오기
  2. 브랜치 만들기
  3. 브랜치에서 커밋. 중앙 저장소에 통합(git push)할지는 그 때 그 때 판단.
  4. 작업하면서 주기적으로 trunk에서 최신 변경사항 통합(git pull)
  5. 테스트 서버에서의 deploy 등으로 개발자가 확신을 가질 수 있는 상태까지 코드 안정화
  6. 코드가 안정화되면 trunk에 병합(mere)

Deploy (or Distribute)

  1. 빌드 머신에서 trunk의 최신 소스 가져오기
  2. 빌드 & 자동 테스트
  3. 필요한 수동 테스트
  4. Deploy

 

참고자료