Trong vài năm qua tôi đã làm việc với một số hệ thống kiểm soát phiên bản khác nhau. Đối với tôi, một trong những khác biệt cơ bản giữa chúng là liệu chúng có phiên bản tệp riêng lẻ hay không (mỗi tệp có số phiên bản và lịch sử riêng) hoặc toàn bộ kho lưu trữ (một "cam kết" hoặc phiên bản thể hiện một ảnh chụp nhanh của toàn bộ kho lưu trữ) .
Một số hệ thống kiểm soát phiên bản "mỗi tệp":
- CVS
- ClearCase
- Nguồn hình ảnh an toàn
Một số hệ thống kiểm soát phiên bản "toàn bộ kho":
- SVN
- Git
- Không kiên định
Theo kinh nghiệm của tôi, các hệ thống kiểm soát phiên bản trên mỗi tệp chỉ dẫn đến sự cố và yêu cầu cấu hình và bảo trì nhiều hơn để sử dụng chính xác (ví dụ: "thông số cấu hình" trong ClearCase). Tôi đã có nhiều trường hợp đồng nghiệp thay đổi một tệp không liên quan và phá vỡ những gì lý tưởng sẽ là một dòng phát triển biệt lập.
Những lợi thế của các hệ thống kiểm soát phiên bản cho mỗi tập tin là gì? Các hệ thống kiểm soát phiên bản "toàn bộ kho" có vấn đề gì mà các hệ thống kiểm soát phiên bản trên mỗi tệp không gặp phải?