소스코드관리시스템(svn, git)을 쓸때 유의해야 할 점이 무엇인가요?

fjfwokas의 이미지


교과서적인 대답도 좋고, 경험이 우러나신 말씀도 좋습니다.

개발하시면서 소스코드관리시스템을 사용하실텐데, 어떤 부분을 유의해야 하나요?

알려주시면 감사드리겠습니다. (__)

ymir의 이미지

형상관리 시스템을 쓰는 주 목적은 이력 관리/추적에 있습니다.
그게 시스템적으로 잘 커스터마이징 되고 최적화되어 있으면 몰라도..
대개는 그냥 있는 그대로 쓰기 때문에.. 그걸 무력화 시킬 수 있는 수 많은 방법이 존재합니다.
결국 사용자의 선의에 의해 움직일 수 밖에 없는 구조가 되는 셈이죠.

이슈 관리 시스템과 연동되어 있다면 이슈 번호를 꼼꼼하게 레퍼런스 해서 쉽게 추적할 수 있도록 하고..
커밋 로그도 정확하게 변경사항을 잘 설명할 수 있도록 해야 하며..
필요하면 해시 태그처럼 관련 단어들이라도 나열해서 검색할 수 있도록 해주면 좋습니다.

반대로, 로그 안 달고, 수정 사항 하나를 여러 개의 커밋으로 쪼개서 검색 어렵게 하거나..
변경 사항과 관련 없는 파일들까지 다 건드려서 왕창 커밋시키거나..
여러 개의 수정 사항을 커밋 하나로 뭉뚱그려 정작 진짜 수정 사항이 뭔지 못찾게 하거나..
root 또는 다른 사람 계정으로 몰래 커밋 하거나 한다면..
이슈 관리 자체를 무력화 시킬 수 있습니다.

커밋 전에는 반드시 diff 로 변경사항이 맞는지 확인하고..
하나의 변경 사항에는 정확하게 관련된 파일들만 선택해서..
로그에 수정 내역과 이슈에 대한 레퍼런스만 정확하게 달아도 기본은 한다고 봅니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

fjfwokas의 이미지

와.. 정말 상세한 답변 감사합니다... 진짜 현직자의 냄새가 물씬 풍기는 경험글이네요..
진짜 달아주신 댓글의 퀄리티가 너무 높네요.. 현직의 벽은 왜이렇게 높은건지ㅠㅠ
진심으로 감사드립니다 (__)

세벌의 이미지

질문이 구체적이지 않으면 답변도...

http://oops.org/?t=lecture&sb=beginner&n=2
도움 되시길...

reistrem의 이미지

ymir님이 답변해주신 내용과 비슷한건데요.
결국에는 형상관리를 이용하는 조직내에서 관리 규칙 및 지속적인 체크가 필요하다는것이죠.
보통 개발자가 그냥 아무렇게나 커밋하게 두면 결국 운영 배포시에 소위 꼬이는(배포사고) 일이 발생합니다.
배포시점의 커밋 목록에 대해 운영배포 대상인지, 배포시 이슈사항이 있는지 확인하는 일련의 부가적인 작업이 꼭 필요하죠.

alstjr7375의 이미지

저도 몇가지 원칙이 있는데요

1. 자주 할것: 협업을 위해 하는 것이기 때문에 되도록 자주 해주는 것이 좋습니다. 기간이 길어지면 소스코드가 부패할 확률이 높아요. 쪼개져서 문제라면 관리자가 커밋내역을 리베이스 해주면 되므로 큰 문제는 아닙니다.
2. 명확한 내용을 달것: 그냥 update, fix 같은식으로 하면 소스코드 동기화, 가끔 롤백 빼고 장점이 없습니다. Git을 사용한다면 브랜치를 나누어 관리하면 더욱 좋습니다.
3. 테스트나 CI, 배포와 연동: 푸시하면 자동으로 테스트가 이루어지고 릴리즈 브랜치에서 테스트가 성공한다면 배포까지 되도록 해야 합니다.