Nếu tệp kê khai đặc biệt lớn thì có thể dẫn đến hiệu suất chậm. Mercurial có một định dạng kho lưu trữ thay thế - generaldelta - thường có thể dẫn đến các biểu hiện nhỏ hơn nhiều.
Bạn có thể kiểm tra kích thước của biểu hiện của bạn sử dụng:
ls -lh .hg/store/*manifest*
Để có được giá trị tối đa từ generaldelta:
Cài đặt Mercurial 2.7.2 hoặc mới hơn (2.7.2 bao gồm một sửa lỗi trong generaldelta có thể dẫn đến kích thước tệp kê khai lớn hơn - nhưng có khả năng bạn sẽ không gặp lỗi với phiên bản cũ hơn).
Thực hiện hg --config format.generaldelta=1 clone --pull orig orig.gd
.
Điều này có thể giúp cải thiện kích thước tệp kê khai nhưng không được hưởng đầy đủ.
- Thực hiện
hg --config format.generaldelta=1 clone --pull orig.gd orig.gd.gd
.
Bản sao của bản sao có thể cải thiện đáng kể kích thước tệp kê khai. Điều này là bởi vì khi kéo từ một thứ repald generaldelta sẽ được sắp xếp lại để tối ưu hóa kích thước biểu hiện.
Ví dụ về lợi ích tiềm năng của generaldelta, gần đây tôi đã chuyển đổi một repo là ~ 55000 SVN cam kết (kéo bằng cách sử dụng chuyển đổi) cộng ~ 1000 Mercurial commits/merges/grafts, vv Biểu hiện trong repo gốc là ~ 1,4 GB. Biểu hiện trong bản sao đầu tiên là ~ 600MB. Biểu hiện trong bản sao của bản sao là ~ 30MB.
Không có nhiều thông tin về generaldelta trực tuyến - vẫn còn nhiều việc phải làm trước khi nó có thể trở thành định dạng mặc định, nhưng nó hoạt động tốt cho nhiều dự án. Một vài kết quả tìm kiếm đầu tiên của Google có một số thông tin từ khi nó được giới thiệu lần đầu tiên và có một số cuộc thảo luận gần đây về danh sách gửi thư của mercurial-dev.
Nguồn
2013-10-10 11:32:42
Từ những gì tôi biết về Mercurial, không có gì mà Mercurial làm điều đó sẽ làm cho nó chậm liên quan đến phân mảnh, vv Bạn đã thử chạy một trình chống phân mảnh đĩa bình thường trên đĩa của bạn? Ngoài ra, loại hoạt động nào chậm, và chậm như thế nào, v.v ...? –
hg qref là điều thực sự chậm. Mất 50 giây trên một repo với 70000 cam kết. Tôi đồng ý rằng nó không phải là một vấn đề cụ thể của mercurial (mặc dù tôi nghĩ rằng mô hình truy cập thủy ngân làm trầm trọng thêm nó), nhưng Mac không có trình chống phân mảnh tích hợp (AFAICT). –