- Checkout là một khóa độc quyền về sửa đổi một nhánh của đối tượng trong kho lưu trữ.
- Checkin là một bản phát hành của khóa độc quyền.
Có hai loại hệ thống kiểm soát nguồn tùy thuộc vào đơn vị phân nhánh nhỏ nhất là gì.
1) Mỗi phân nhánh kho lưu trữ (CVS, SVN, GIT, Perforce, ... vv)
Trong các sản phẩm nơi bạn phân nhánh toàn bộ kho lưu trữ, thanh toán thường sẽ tạo hoặc cho phép sửa đổi đối với nhánh cục bộ (bản sao) của toàn bộ kho lưu trữ. Trong các sản phẩm đó, checkin thường không được sử dụng và trở thành một phần của hoạt động cam kết , đó là một lần kiểm tra chi nhánh từ xa, áp dụng bản vá cục bộ và đăng ký của chi nhánh từ xa trong hoạt động đơn lẻ. Bạn không kiểm tra chi nhánh địa phương vì nó được kiểm tra vĩnh viễn. (Lưu ý: Trong GIT, bạn không cam kết với chi nhánh từ xa, bạn đẩy cam kết cục bộ của mình đến nó. Khác biệt về cú pháp. )
2) Mỗi nhánh đối tượng (ClearCase, AccuRev, Oracle ADE)
Trong các sản phẩm nơi bạn phân nhánh các đối tượng riêng lẻ, như thư mục, tệp, v.v ... Khái niệm thanh toán và đăng ký áp dụng cho mỗi đối tượng trên mỗi nhánh. Bạn sẽ khóa đối tượng để sửa đổi nó bằng thanh toán và phát hành nó với checkin . Trong các sản phẩm đó, bạn thường làm việc trên một nhánh riêng nơi các khóa không giữ ai làm việc và tại thời điểm hợp nhất chi nhánh địa phương của bạn thành một nhánh dùng chung, các đối tượng cũng được kiểm tra trên nhánh shard (chính, nhánh chính, nhánh tính năng, v.v. ) xung đột hợp nhất được giải quyết và đối tượng được kiểm tra trên nhánh chia sẻ. Điều này cho phép nhiều người "cam kết" cùng một lúc với chi nhánh được chia sẻ miễn là họ không sửa đổi cùng một đối tượng.