2009-05-18 42 views

Trả lời

7

VCS khác nhau sử dụng các cách tiếp cận khác nhau. CVS, ví dụ, sẽ tạo một tệp trên máy chủ cho mỗi tệp mà bạn cam kết. Về cơ bản, đây là một tệp ở định dạng RCS; CVS chỉ là một trình bao bọc xung quanh RCS chạy các lệnh RCS trên nhiều tệp trong một thư mục con (RCS chỉ có thể hoạt động trên các tệp đơn).

Tệp RCS chứa danh sách các thay đổi (số phiên bản, thông báo đăng ký và số lượng đã thay đổi). Sau đó có một bản sao của phiên bản HEAD hiện tại. Phần còn lại của các tập tin là sự khác biệt giữa các phiên bản (long explanation).

Bằng cách này, CVS có thể nhanh chóng trả về phiên bản HEAD (thường được yêu cầu nhất) và có thể tính toán các phiên bản khác.

CVS không thực hiện bất kỳ xác thực nào; nếu một trong các tệp của bạn bị hỏng, bạn cần bản sao lưu. Vì CVS dựa trên RCS, nó không thể theo dõi các thư mục cũng như không thể theo dõi các đổi tên. CVS và RCS sử dụng lệnh diff(1) tiêu chuẩn để tạo các khác biệt.

Subversion (SVN) hoạt động tương tự nhưng thêm phiên bản của thư mục và đổi tên. Hơn nữa, SVN sử dụng một thuật toán khác biệt tốt hơn (xdelta) cung cấp cho một kho lưu trữ nhỏ hơn.

Để biết cách giải thích cách hoạt động của Git, hãy xem here.

0

Darcs rất khác và IMHO trực quan hơn các SCM khác ngay cả những SCM được phân phối. Có hướng dẫn tuyệt vời dành cho người mới bắt đầu về cách hoạt động: Understanding Darcs.

Các vấn đề liên quan