2011-07-28 24 views
6

Một trong các kho lưu trữ git của chúng tôi đủ lớn để một git-clone mất một khoảng thời gian khó chịu (hơn một vài phút). Thư mục .git là ~ 800M. Nhân bản luôn xảy ra trên 100Mbps trên ssh. Ngay cả nhân bản trên ssh để localhost mất hơn một vài phút.Làm cách nào để quản lý kho lưu trữ git lớn?

Có, chúng tôi lưu trữ dữ liệu và các đốm màu nhị phân trong kho lưu trữ.

Ngắn di chuyển chúng ra, có cách nào khác để làm cho nó nhanh hơn không?

Ngay cả khi di chuyển các tệp lớn, chúng tôi là một lựa chọn, làm thế nào chúng ta có thể làm điều đó mà không có sự gián đoạn lớn khi viết lại lịch sử của mọi người?

+2

Bạn đã nén chưa? Là '.gitignore' của bạn đủ thiết lập? Tôi đã đi từ 4.3GB repo đến 450mb với những cân nhắc này và nó đã cứu mạng tôi, haha ​​ – Nic

+0

@melee đáng buồn là đa số đã bị nén –

+0

Tôi rất muốn ở trong đôi giày của bạn. Git repo của chúng tôi gần đây đã đạt khoảng 2GB. Máy chủ chính của chúng tôi là một vài quốc gia đi, do đó kết nối chậm hơn, do đó nhân bản mất khoảng 30-45 phút. Những gì tôi đang cố gắng nói là: nếu bạn nghĩ rằng tình hình của bạn là xấu, luôn luôn có rất nhiều người cho người đó là tồi tệ hơn;). –

Trả lời

0

Tôi khá chắc chắn rằng bạn sẽ không thể di chuyển các tệp nhị phân đó ra mà không cần viết lại lịch sử.

Tùy thuộc vào những gì các tệp nhị phân (có thể là một số thư viện dựng sẵn hoặc bất kỳ thứ gì), bạn có thể có một tập lệnh nhỏ để nhà phát triển chạy sau khi kiểm tra tải xuống chúng.

0

Gigabit ... fiber ... Không có lịch sử viết lại, bạn khá hạn chế.

Bạn có thể thử git gc nó có thể làm sạch nó một chút, nhưng tôi không chắc chắn nếu điều đó được thực hiện với một bản sao anyway.

+1

Nếu anh ta đã làm 'git gc --aggressive' và bị đẩy, liệu nó có cập nhật điều khiển từ xa không? Có thể là cơ sở cho một câu hỏi mới – Nic

+1

Tôi đã tự hỏi điều này vào một ngày khác ... Tôi nghĩ tôi sẽ phác họa một câu hỏi. – Andy

0

Ngay cả khi di chuyển các tệp lớn, chúng tôi là một tùy chọn, làm cách nào chúng tôi có thể làm điều đó mà không có sự gián đoạn lớn khi viết lại lịch sử của mọi người?

Kiểm tra câu trả lời này: Will git-rm --cached delete another user's working tree files when they pull

Biện pháp này, cùng với việc thêm mẫu để .gitignore, sẽ giúp bạn giữ các tập tin lớn ra.

1

Tôi phải đối mặt với tình huống tương tự với kho lưu trữ ~ 1GB, cần được chuyển qua DSL. Tôi đã đi với người lén lút quên lãng: đặt nó trên một ổ đĩa flash và lái nó qua thị trấn trong xe của tôi. Điều đó không thực tế trong mọi tình huống, nhưng bạn thực sự chỉ phải làm điều đó cho bản sao ban đầu. Sau đó, chuyển khoản là khá hợp lý.

+0

Và đừng quên khả năng 'git-bundle' (đối với sneakernet và các phương thức truyền dẫn thủ công khác), do đó bạn chỉ cần chuyển ** bit ** mới giữa các repos khác nhau –

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