- Checkout adalah kunci eksklusif untuk memodifikasi cabang objek dalam repositori.
- Checkin adalah rilis kunci eksklusif.
Ada dua jenis sistem kontrol sumber tergantung pada apa yang merupakan unit percabangan terkecil.
1) Per cabang repositori (CVS, SVN, GIT, Perforce, ... dll)
Dalam produk-produk tempat Anda melakukan percabangan seluruh repositori, checkout biasanya akan membuat atau mengaktifkan modifikasi ke cabang lokal (salinan) dari seluruh repositori. Dalam produk tersebut checkin sering tidak digunakan dan menjadi bagian dari operasi komit , yang sekaligus checkout cabang terpencil, menerapkan patch lokal dan checkin cabang terpencil dalam operasi tunggal. Anda tidak checkin cabang lokal Anda karena diperiksa secara permanen. (Catatan: Di GIT Anda tidak komit ke cabang jarak jauh, Anda mendorong komit lokal Anda untuk itu. Perbedaan sintaksis yang ketat. )
2) Per objek bercabang (ClearCase, AccuRev, Oracle ADE)
Dalam produk tempat Anda bercabang objek individual, seperti direktori, file, dll. Konsep checkout dan checkin berlaku per objek per cabang. Anda akan mengunci objek untuk memodifikasinya dengan checkout dan melepaskannya dengan checkin . Dalam produk-produk tersebut Anda sering bekerja pada cabang pribadi di mana kunci tidak menghalangi siapa pun untuk bekerja dan pada saat penggabungan cabang lokal Anda menjadi cabang bersama, objek juga diperiksa di cabang beling (utama, master, cabang fitur, dll. ) konflik gabungan diselesaikan dan objek diperiksa di cabang bersama. Ini memungkinkan banyak orang untuk "melakukan" pada saat yang sama ke cabang bersama selama mereka tidak memodifikasi objek yang sama.