Tôi đọc sách lật đổ và rõ ràng với tôi rằng lật đổ không lưu trữ các tệp riêng lẻ mà chỉ lưu giữ các vùng đồng bằng để giảm thiểu không gian đĩa. Subversion cũng làm tương tự với các tập tin nhị phân là tốt (điều này từng là một điểm yếu rất lớn của CVS).Subversion lưu trữ các tệp trong kho lưu trữ như thế nào?
Tuy nhiên tôi không hiểu cơ chế chính xác. Khi tôi cam kết một tập tin những gì sẽ xảy ra?
- cửa hàng Subversion chỉ diff (và đã có các phiên bản cũ)
- Subversion xóa các phiên bản trước, lưu trữ các tập tin mới nguyên vẹn và tạo ra một diff ngược để "tái tạo" phiên bản cũ nếu cần thiết.
- Điều gì đó khác mà tôi chưa từng nghĩ đến.
Trường hợp đầu tiên có vẻ hợp lý nhất. Tuy nhiên điều này đặt ra một câu hỏi khác. Nếu tôi có trong kho lưu trữ subversion một tệp có 1000 commit và một nhà phát triển mới kiểm tra một bản sao sạch, thì subversion sẽ phải tìm nạp phiên bản gốc (nhập ban đầu) và áp dụng 1000 khác biệt về điều này trước khi trả về kết quả. Điều này có đúng không? Có một số loại bộ nhớ đệm cho các tập tin mà phiên bản mới nhất được lưu giữ không?
Về cơ bản, tôi có thể tìm thông tin về nội bộ kho svn ở đâu?
Cập nhật: Dường như phần phụ của subversion đóng một vai trò lớn trong việc này. Tại thời điểm hoặc viết FSFS sử dụng tùy chọn 1 trong khi BDB sử dụng tùy chọn 2. Cảm ơn msemack!
chỉnh nhỏ: "Các phiên bản sau của lật đổ cũng làm tương tự với các tập tin nhị phân cũng". Subversion đã luôn luôn làm điều này (ít nhất là xa như phiên bản 0.3.x). –
có thể trùng lặp với [Hiệu suất SVN sau nhiều lần sửa đổi] (http://stackoverflow.com/questions/127692/svn-performance-after-many-revisions) –
Tôi cũng thấy điều này rất khó hiểu. Có một số kết thúc có sẵn, bdb và fsfs. Sau đó, có những tài liệu về "bong bóng lên", bỏ qua-delta mà dường như mâu thuẫn với nhau. Cách hiện tại một mặc định svn repo lưu trữ các tập tin của nó là gì? – Thomas