- Checkout es un bloqueo exclusivo para modificar una rama de objeto en un repositorio.
- Checkin es un lanzamiento de bloqueo exclusivo.
Hay dos tipos de sistemas de control de fuente dependiendo de cuál es la unidad más pequeña de ramificación.
1) Por ramificación de repositorio (CVS, SVN, GIT, Perforce, ... etc.)
En los productos en los que ramifica todo el repositorio, el proceso de pago generalmente creará o habilitará modificaciones a la sucursal local (copia) de todo el repositorio. En esos productos, el registro a menudo no se utiliza y se convierte en parte de la operación de confirmación , que es a la vez el pago de la rama remota, la aplicación del parche local y el registro de la rama remota en una sola operación. No checkin su sucursal local, ya que se comprueba permanentemente. (Nota: en GIT no se compromete con la rama remota, empuja su confirmación local a ella. Estrictamente una diferencia sintáctica ) .
2) Por ramificación de objeto (ClearCase, AccuRev, Oracle ADE)
En productos donde ramifica objetos individuales, como directorios, archivos, etc. El concepto de pago y registro se aplica por objeto por rama. Bloqueará el objeto para modificarlo con el pago y liberarlo con el registro . En esos productos, a menudo trabaja en una rama privada donde las cerraduras no impiden que nadie trabaje y en el momento de la fusión de su rama local en una rama compartida, los objetos también se registran en la rama de fragmentos (principal, principal, rama característica, etc. ) los conflictos de fusión se resuelven y el objeto se registra en la rama compartida. Esto permite que varias personas se "comprometan" al mismo tiempo a una rama compartida siempre que no modifiquen los mismos objetos.