CVS

CVS là chữ viết tắt của "Concurrent Versions System" từ tiếng Anh. CVS có nghĩa là "hệ thống các phiên bản đồng thời". CVS còn có tên gọi khác là "Concurrent Versioning System". Đây là hệ thống quản lý các phiên bản phần mềm mã nguồn mở được đề xuất và phát triển bởi Dick Grune vào thập niên 1980. CVS được dùng để theo vết tất cả các công việc và các thay đổi trong một tập hợp các tập tin. CVS cho phép nhiều lập trình viên và các thành viên khác trong một tổ phát triển phần mềm cộng tác với nhau. CVS đã trở nên phổ biến trong thế giới phần mềm mã nguồn mở
và được cấp phép bởi giấy phép công cộng GNU GPL.
Các đặc điểm.
CVS sử dụng kiến trúc client-server, trong đó phía server lưu trữ các phiên bản hiện tại của dự án và lịch sử của nó. Trong khi đó, các client (tạm hiểu là các nhà phát triển) kết nối tới server để lấy về một phiên bản copy đầy đủ dự án, làm việc trên phiên bản đó và sau đó lưu lại nhưng thay đổi của họ. Thông thường, client và server kết nối thông qua mạng LAN hoặc Internet. Client và server có thể cùng chạy trên một máy nếu CVS có nhiệm vụ theo vết lịch sử của dự án do các nhà phát triển phần mềm phát triển trong nội bộ. Phần mềm server thường chạy trên Unix, trong khi CVS client có thể chạy trên nhiều hệ điều hành khác nhau.
Nhiều nhà phát triển phần mềm có thể làm việc đồng thời trên cùng một dự án. Trong đó, mỗi nhà phát triển thay đổi nội dung các tập tin bên trong phiên bản copy của dự án của chính họ và sau đó gởi những thay đổi của họ về máy server. Để tránh việc người này ghi đè lên những thay đổi của người khác, server chỉ chấp nhận những thay đổi đối với phiên bản gần đây nhất của một file. Điều này cũng giúp cho các nhà phát triển dự án luôn làm việc trên các bản copy mới nhất bằng cách kết hợp với những thay đổi của người khác dựa trên những nguyên tắc cơ bản. Điều này được thực hiện một cách tự động bởi CVS client.
Nếu client lấy nội dung của dự án thành công thì định danh (thường là con số thể hiện phiên bản) của tất cả các tập tin được tự động tăng lên và server có nhiệm vụ lưu lại tất cả các thao tác này trong các tập tin gọi là tập tin nhật ký ("logs file") bao gồm các nội dung như ngày tháng, tên của nhà phát triển phần mềm, các mô tả tóm lược...
Các client cũng có thể so sánh các thuật toán, yêu cầu lịch sử đầy đủ của sự thay đổi. Nhiều dự án mã nguồn mở cũng cho phép kiểu truy cập nặc danh ("anonymous read access") để đọc, ý tưởng này được đưa ra bởi OpenBSD.
Client cũng có thể sử dụng lệnh cập nhật để cập nhật bản copy của họ với phiên bản mới nhất trên server. Điều này loại bỏ được khả năng download lặp lại toàn bộ dự án.
CVS sử dụng phương pháp nén delta compression để tiết kiệm chi phí lưu trữ các phiên bản khác nhau của cùng một tập tin.
Thuật ngữ.
Một dự án riêng lẻ ("single project")- một tập các tập tin có liên quan với nhau được gọi là module. CVS server lưu trữ các module nó quản lý trong một nơi gọi là "kho" ("repository"). Việc yêu cầu một phiên bản copy của một module gọi là checking out.

