버전 관리 시스템은 IT  프로젝트의 가장 중요한 산출물인 소스 코드를 관리하는 핵심 인프라 시스템으로 소스 코드의 모든 변경 이력을 관리한다.

이로써 소스의 변경 사항을 추적하고 협업할 수 있으며 변경으로 인한 버그를 신속히 찾아서 수정하고 인력의 변경이나 업무 이관시에도 인수인계에 드는 시간을 최소화 할 수 있다.

 

위의 목적에 부합하려면 가장 필요한 기능중 하나는 버전관리 시스템에 기록된 변경사항중에 우리가 필요로하는 특정 변경 관련한 이력을 뽑아 보는 기능이다.

하지만 변경 이력 열람시 수많은 커밋 목록에서 우리가 원하는 커밋만 뽑아서 보는 것은 쉬운 일이 아니다.

버전관리의 이력 목록은 단순히 변경 내역의 나열이므로 여기에서 의미있는 자료를 뽑으려면 커밋 로그 메시지를 확인하여 필요한 변경 이력을 뽑는 수밖에 없으며 이 작업은 매우 불편하고 오래 걸리며 부정확하기 마련이다.

특히 커밋 메시지를 잘 남기지 않았다면 실제 소스의 변경 내역을 확인해야 하므로 더욱 시간이 걸리기 마련이다.

톰캣의 커밋 내역

 

 

하지만 변경이 필요한 모든 내역을 이슈로 등록해 놓고 이슈관리 시스템과 버전관리를 연계해 놓았다면 아주 편하고 빠르게 원하는 변경 집합을 열람할 수 있다. 

커밋 메시지에 이슈 번호만 남겨 놓으면 아래 그림처럼 이슈 관점에서 소스의 변경 내역을 추적할 수 있으므로 원하는 변경 내역을 손쉽고 빠르게 변경 내역을 확인할 수 있다.

 

 

이슈 기반의 소스코드 열람

 

그러므로 이슈 관리 시스템과 버전관리 시스템을 프로젝트 초반부터 연계하는 것은 매우 중요한 작업이며 이를 위해 변경이 필요한 모든 내역을 이슈로 등록하고 커밋시에 이슈 번호를 입력하도록 프로세스를 만드는 것이 좋다.

특히 커밋시 실수로 이슈관리와 연동을 누락할 경우 향후 소스 코드 열람시 해당 커밋은 제외되므로 커밋 정책을 만들고 커밋 훅을 통해서 정책을 따르는지 확인하고 실수를 보정하도록 설정하는 것이 꼭 필요하다.