- Checkout - это эксклюзивная блокировка для изменения ветви объекта в хранилище.
- Checkin - это выпуск эксклюзивной блокировки.
Существует два вида систем управления исходным кодом в зависимости от того, какая наименьшая единица ветвления.
1) Разветвление репозитория (CVS, SVN, GIT, Perforce и т. Д.)
В продуктах, в которых вы разветвляете весь репозиторий, checkout обычно либо создает, либо включает изменения в локальной ветви (копии) всего репозитория. В этих продуктах регистрация часто не используется и становится частью операции фиксации , которая является одновременно проверкой удаленной ветви, применением локального исправления и регистрацией удаленной ветви в одной операции. Вы не регистрируетесь в своем местном отделении, поскольку оно постоянно проверено. (Примечание: в GIT вы не фиксируете удаленную ветвь, вы помещаете в нее локальную фиксацию. Строго синтаксическая разница. )
2) Для каждого ветвления объекта (ClearCase, AccuRev, Oracle ADE)
В продуктах, где вы разветвляете отдельные объекты, такие как каталоги, файлы и т. Д. Концепция извлечения и регистрации применяется для каждого объекта в ветви. Вы заблокируете объект, чтобы изменить его с помощью checkout и освободить его с помощью checkin . В этих продуктах вы часто работаете в частной ветви, где блокировки никому не мешают работать, и во время слияния вашей локальной ветви в общую ветку объекты также извлекаются в ветке сегмента (основной, основной, ветвь функций и т. Д.). ) конфликты слияния разрешаются и объект проверяется в общей ветке. Это позволяет нескольким людям одновременно «фиксировать» в общей ветке, если они не изменяют одни и те же объекты.