- Checkout 은 리포지토리에서 개체의 분기를 수정하는 독점 잠금입니다.
- 체크인 은 독점 잠금 해제입니다.
가장 작은 분기 단위에 따라 두 가지 종류의 소스 제어 시스템이 있습니다.
1) 리포지토리 당 분기 (CVS, SVN, GIT, Perforce 등)
전체 저장소를 분기하는 제품에서, 체크 아웃 은 일반적으로 전체 저장소의 로컬 분기 (복사)를 작성하거나 수정합니다. 이러한 제품에서 체크인 은 종종 사용되지 않으며 커밋 작업 의 일부가됩니다. 이 작업은 한 번 에 원격 지점을 체크 아웃 하고 로컬 패치를 적용 하고 단일 지점에서 원격 지점을 체크인 합니다. 로컬 지점이 영구적으로 체크 아웃 되었으므로 체크인 하지 않습니다 . (참고 : GIT에서는 원격 브랜치에 커밋하지 않고 로컬 커밋을 푸시합니다. 엄밀히 구문 상 차이가 있습니다. )
2) 객체 별 분기 (ClearCase, AccuRev, Oracle ADE)
디렉토리, 파일 등과 같은 개별 오브젝트를 분기하는 제품의 경우 체크 아웃 및 체크인 개념은 분기당 오브젝트마다 적용됩니다. 체크 아웃으로 객체를 수정하고 체크인으로 해제 하도록 객체를 잠급니다 . 이러한 제품에서는 종종 잠금을 사용하지 않는 개인 브랜치에서 작업하고 로컬 브랜치를 공유 브랜치로 병합 할 때 샤드 브랜치 (메인, 마스터, 피처 브랜치 등) 에서도 개체를 체크 아웃합니다 . ) 병합 충돌이 해결되고 공유 분기에서 개체가 체크인 됩니다. 이를 통해 여러 사람이 같은 개체를 수정하지 않는 한 공유 분기에 동시에 "커밋"할 수 있습니다.