"DO NOT DO IT"으로 나를 훈계하기 전에 "BAD PRICTICE!" 및 "올바른 소스 코드 컨트롤을 사용하는 방법을 배우십시오", 먼저 저를 들어 주시기 바랍니다. 나는 오래된 코드를 주석 처리하고 영원히 그 코드를 남겨 두는 습관이 매우 좋지 않다는 것을 완전히 알고있다.의견이있는 소스 코드 버전 관리 (조직 관행) - 탈퇴 또는 제거?
몇 달 전 소프트웨어 개발 업체로 입사했습니다. 저는 회사에 몇 달 동안 인턴으로 일 했었습니다. 최근에 입사하기 1 년 전이었습니다. 우리 회사는 소스 코드 버전 관리 (CVS)를 사용하지만 제대로 작동하지 않습니다.
내 인턴쉽과 현재의 영구직 모두에서 일어난 일이 있습니다. 프로젝트 (레거시, 약 8-10 세) 작업을 할 때마다. CVS 계정을 만들고 코드를 체크하고 변경 사항을 체크인시키는 대신, 한 고위 동료가 CVS에서 코드를 내 보낸 다음 압축하여 내게 전달했습니다.
이 동료는 몇 주마다 모든 변경 사항을 확인하지만 실제로는 실제 소스 코드 자체에서 세분화 된 버전 관리를 수행합니다 (각 파일은 나머지 파일과 독립적으로 버전이 증가합니다). 파일을 변경할 때마다 이전 코드가 주석 처리되고 새 코드가 그 아래에 입력되며이 전체 섹션에는 버전 번호가 표시됩니다. 변경 사항에 대한 참고 사항은 수정 내역 섹션의 파일 맨 위에 있습니다. 마지막으로 변경된 파일은 공유 폴더에 저장되며 대량 체크인을 준비하고 대기합니다.
/*
* Copyright notice blah blah
* Some details about file (project name, file name etc)
* Modification History:
* Date Version Modified By Description
* 2012-10-15 1.0 Joey Initial creation
* 2012-10-22 1.1 Chandler Replaced old code with new code
*/
code ....
//v1.1 start
//old code
new code
//v1.1 end
code ....
이제 문제가 발생했습니다. 필자가 진행중인 프로젝트에서 다른 프로젝트의 소스 코드 파일을 복사해야했습니다. 새로운 의미는 이전에 대상 프로젝트에 없었기 때문입니다. 이 파일들은 역사적으로 주석 처리 된 많은 코드와 주석 기반 버전 관리를 일반적으로 길거나 매우 긴 것을 포함합니다. 수정 내역 섹션.
파일이이 프로젝트에서 새롭기 때문에이를 정리하고 기록 코드를 포함한 불필요한 코드를 제거하고 버전 1.0에서 새로 시작하기로 결정했습니다. (필자는 미안함에도 불구하고 여전히 주석 기반 버전 관리를 계속해야하며 버전 0.1에서 시작하지 않는 이유는 묻지 않는다 ...) 인턴쉽 중 비슷한 일을 해왔지만 아무도 아무 말도하지 않았다. 상사가 그 작업을 몇 차례 보았고 그런 정리를해서는 안된다고 말하지 않았습니다 (전혀 눈치 채지 못했다면).
그러나 같은 수준의 동료가 이것을보고 향후 중단 시간을 유발하고 유지 관리 비용을 증가시킬 수 있으므로 권장하지 않는 것이라고 말했습니다. 예를 들어 원본 파일의 다른 프로젝트에서 변경이 이루어지고 이러한 변경 사항이이 프로젝트에 전파되어야 할 때입니다. 코드 파일이 크게 달라지면 전파하는 다른 개발자에게 혼동을 줄 수 있습니다. 그것은 나에게 의미가 있으며, 유효한 점입니다. 엄청나게 엉망인 코드의 불편 이외에 정리를 할 이유가 없었습니다.
짧은 이야기 : 우리 회사에서 연습을 감안할 때 프로젝트간에 새 파일을 복사 할 때 정리를하지 않아야합니까? 코멘트에 전체 이력을 가진 원본 코드의 복사본을 변경하는 것이 더 좋습니까? 또는 정리 작업에 대한 근거는 무엇입니까? 개조에
PS : 어떤 이유로 당신이 SO에 부적합한 것으로 결정하는 경우에도이 질문에 몇 시간을 허용 바랍니다.태그를 포함하여 부적절한 것이 있으면 미리 사과드립니다.
답변은 실제로 1) 귀사의 회사 정책에 따라 2) 관련 사람들과 회의를하고 적절하게 소스 제어를 사용하고 얼마나 많은 시간/비용으로 회사를 구할 지 설명하십시오. 3) 새로운 직장을 구하십시오. 그 이외에, 나는 정직하게 도덕적 인 지원을 제공하는 것 외에 우리가 여기서 당신을 위해 할 수있는 일을 확신하지 못합니다. –
어쩌면 이것은 직장 SE에 맞습니까? –
고맙습니다. 내가 궁금해하는 점은 새 파일을 정리하면 미래의 가동 중단 시간이 늘어나고 필자는이를 피해야 하는지를 반복하고 싶습니다. 코드 실무에 대한 문서화 된 정책은 없으며 역사가 프로젝트마다 유지되어야하는지 여부에 대한 언급이 없습니다. 필자는 현재의 관행에 대한 통제권이 없으며 많은 프로젝트에서 수년간 이것을 해왔다 (코멘트 버저 닝). 그들은 완전한 스위치를 만드는 대신 CVS를 원래의 버전 제어 방식으로 보완합니다. 다음 1.75 년 동안 수평선에 새로운 직업 : ( – ADTC