2009-06-30 37 views
6

Tôi đang tìm một cách nhanh chóng nhưng không quá bẩn để làm ảnh chụp nhanh của một loạt các tập tin tổng cộng khoảng 80 hợp đồng biểu diễn. Vấn đề ở đây là nhiều tệp có dung lượng lớn khoảng 1 GB.Hệ thống kiểm soát phiên bản cho các tệp lớn?

Hệ thống kiểm soát phiên bản miễn phí tốt nhất cho loại điều này là gì?

Tôi biết ZFS là một tùy chọn, nhưng tôi muốn thử một số thứ khác trước.

+0

ascii hoặc nhị phân? – Johan

+0

nhị phân - mặc dù tôi không biết bất kỳ hệ thống kiểm soát phiên bản hiện đại nào có thuật toán phân biệt giữa ascii và nhị phân. Tôi sẽ dùng thử và đăng kết quả của mình tại đây. –

+0

Cam kết ban đầu bận và sử dụng giao thức file: //, subversion chuyển trung bình 1,5 MB mỗi giây. Khá chậm chạp. –

Trả lời

6

Subversion sẽ xử lý> file 1GB của bạn với sự tự tin bụng tốt cho hầu hết các phần nhưng nếu có nhiều thay đổi lớn mong đợi thế hệ của diffs để có một thời gian ...

Subversion Best practices có một phần trên các tập tin lớn:

Tính năng tốt đẹp của Subversion là theo thiết kế, không có giới hạn đối với kích thước kích thước tệp có thể xử lý. Các tệp được gửi "một cách hợp lý" theo cả hai hướng giữa máy khách và máy chủ Subversion, sử dụng một lượng bộ nhớ không đổi nhỏ, trên mỗi bên của mạng.

Tất nhiên, có một số vấn đề thực tế cần xem xét. Trong khi không cần phải lo lắng về các tệp trong phạm vi kilobyte (ví dụ: tệp mã nguồn điển hình), thì các tệp lớn hơn có thể mất một số lượng lớn thời gian và không gian (ví dụ: tệp là hàng chục hoặc hàng trăm megabyte) lớn.)

Để bắt đầu, hãy nhớ rằng bản sao làm việc Subversion của bạn lưu trữ bản sao nguyên sơ của tất cả các tệp được kiểm soát phiên bản trong khu vực .svn/text-base/ . Điều này có nghĩa là bản sao làm việc của bạn chiếm ít nhất hai lần là nhiều không gian đĩa làm tập dữ liệu ban đầu. Ngoài ra, ứng dụng Subversion tuân thủ thuật toán (hiện không thể điều chỉnh) để thực hiện các tệp :

. Sao chép tệp vào .svn/tmp/(có thể mất một lúc và tạm thời sử dụng không gian đĩa bổ sung))

. Thực hiện một sự khác biệt nhị phân giữa tmpfile và bản sao nguyên sơ, hoặc giữa tệp tmpfile và một tệp rỗng nếu mới được thêm . (có thể mất rất nhiều thời gian để tính toán, mặc dù chỉ một lượng nhỏ dữ liệu cuối cùng có thể được gửi qua mạng)

. Gửi diff đến máy chủ, sau đó di chuyển tmpfile vào svn/text-base/

Vì vậy trong khi không có giới hạn lý thuyết với kích thước của tập tin của bạn, bạn sẽ cần phải lưu ý rằng tập tin rất lớn có thể yêu cầu khá một chút của bệnh nhân chờ đợi trong khi khách hàng của bạn chugs đi. Tuy nhiên, bạn có thể yên tâm, , không giống như CVS, các tệp lớn của bạn sẽ không mất khả năng máy chủ hoặc ảnh hưởng đến những người dùng khác.

+3

Chúng tôi đã sử dụng subversion ngay bây giờ cho mục đích này trong khoảng hai tuần, và nó hoạt động tốt. Kiểm tra trên một tập hợp dữ liệu khoảng 80 hợp đồng biểu diễn trải rộng trên 130.000 tệp mất khoảng 1 giờ mỗi đêm để kiểm tra. Khu mua sắm hàng ngày là 50 megabyte. Tệp đơn lớn nhất trong tập dữ liệu là 800 meg. –

+0

Công cụ tuyệt vời, Ben. Rất vui khi bạn thấy điều này hữu ích. –

3

Mặc dù bạn có thể thực sự muốn thử Monotone, chỉ cần kiểm tra. Bạn có thể tìm thấy những gì bạn đang tìm kiếm với nó.

+1

uring hội nghị thượng đỉnh đơn điệu, chúng tôi đã trao đổi một số giá trị 2GB của bức ảnh bằng cách sử dụng đơn điệu chính nó, và nó đã được khá nhanh. – lapo

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