소스 코드를 오랫동안 개발, 운영하다 보면 버전 관리 이슈가 생긴다. 보통 버전을 날짜 형식으로 관리하는 경우도 있지만, “v1.01”, “v1.02”와 같은 형식으로 관리하기도 한다.

빌드된 최종 실행 파일에 버전을 명시하는 경우를 위해서 어떻게 하면 버전 관리를 쉽게 할 수 있을지 고민해 봤다. 그 결과 좀 허접한 방법을 알아내었다.

  • root 폴더에 “version.txt” 파일을 생성한다.

  • “version.txt” 파일을 include하여 const char* 타입을 반환하게끔 사용할 수 있다.

  • 빌드 과정에서 최종적으로 “version.txt” 정보를 이용하여 압축 파일을 생성할 수도 있다.

  • 실행 파일이 실행될 때 버전 정보를 로그로 남기는 것이 관례.

  • 이후 버전 정보를 바꾸고 싶을 때에는 version.txt 내용만 변경하면 모든 관리가 끝.

References

https://gitlab.com/gilgil/g/-/blob/master/version.txt
https://gitlab.com/gilgil/g/-/blob/master/src/base/gbase.cpp
https://gitlab.com/gilgil/g/-/blob/master/setup/linux-setup.sh