저장 공간이 저렴하므로 파일을 체크인하거나 체크인하지 않아야하는 이유에 대한 설득력있는 주장이 아닙니다.
대신 SCM의 목적에 호소 할 수 있습니다. SCM에서 추적하는 각 파일은 팀이 수행하는 병렬 분산 변경 사항을 관리해야한다는 것을 나타냅니다. 두 팀원이 동일한 파일을 변경하려고 시도 할 때까지는 그 사실이 분명하지 않습니다. 이러한 변경 사항을 해결하는 것은 SCM이 실제로하는 일이므로 다른 개발자의 작업을 실수로 덮어 쓰지 않도록하고 변경 사항을 병합하는 프로세스를 자동화하기를 바랍니다.
일반 병합 도구가 병합 된 이진 파일의 작동 방식을 추측 할 수있는 방법이 없기 때문에 이진 파일을 병합하는 것은 일반적으로 어려운 문제입니다. 특정 파일 형식을 인식하도록 특별히 설계된 경우가 아니면 파일의 인덱스 또는 오프셋 포인터가 작동하는 방식에 대해 충분히 알 수 없습니다.
즉, 이진 파일을 직접 병합 한 다음 SCM에 파일이 병합되었음을 알려야합니다. 개발자가 수행하기 때문에 병합은 실제로 이전 체크인의 모든 변경 사항을 다루지 않을 수 있으며 파일이 이진 파일이므로 병합을 자동으로 확인할 수있는 방법이 없습니다.
미술 자산과 같은 프로젝트 소스를 실제로 나타내는 이진 형식의 경우 이는 불행한 일이지만 필요한 단계입니다. 그러나 빌드 출력은 소스가 아닙니다. 소스를 병합하고 결과 빌드 출력을 재생성 할 수 있으므로 병합 할 필요가 없습니다. 이러한 변경 사항을 추적하고 관리하는 것은 100 % 낭비입니다. SCM의 리소스를 많이 낭비하지는 않지만 허위 병합 실패를지나 개발자 시간을 낭비합니다. 개발자 시간은 매우 비싸고 낭비하는 것은 암입니다.
반면에 빌드 출력을 보관해야하는 특별한 경우가 있습니다. 배송 또는 배포 된 모든 버전의 프로젝트는 무기한으로 유지되어야합니다. 고객이 문제를 겪고있는 실제 빌드의 정확한 바이트 사본 바이트를 사용하면 고객이 보유한 정확한 버전을 가지게되므로 훨씬 쉽게 고객을 지원할 수 있습니다.
해당 백업은 일반적으로 다른 스케줄을 따르고 기본적으로 다른 구조를 가지기 때문에 소스 코드와 동일한 저장소에 있지 않아야합니다.