Điều bạn muốn là narrow or partial clone, nhưng rất tiếc là chưa được hỗ trợ.
Nếu bạn đã có một kho lưu trữ lớn và bạn nhận ra rằng nó sẽ có ý nghĩa để chia thành nhiều kho nhỏ hơn, sau đó bạn có thể sử dụng convert extension để thực hiện Mercurial to Mercurial conversion. Lưu ý rằng điều này tạo ra kho mới foo
và bạn không thể đẩy/kéo giữa your-big-repo
và foo
.
Các convert extension
không được kích hoạt theo mặc định để thêm dòng sau vào tập tin hgrc
của repo của bạn hoặc mercurial.ini
tập tin của bạn:
[extensions]
hgext.convert=
Sau đó tạo một file map.txt
với
include "libs/foo"
rename "libs/foo" .
(lưu ý bạn có thể sử dụng chuyển tiếp ngay cả trên Windows) và chạy
$ hg convert --filemap map.txt your-big-repo foo
Điều đó sẽ làm cho foo
một kho lưu trữ có toàn bộ lịch sử của thư mục libs/foo
từ your-big-repo
.
Nếu bạn muốn xóa tất cả bằng chứng của foo
từ your-big-repo
bạn có thể thực hiện một chuyển đổi khác khi bạn sử dụng exclude libs/foo
để loại bỏ thư mục.
Khi bạn có nhiều kho lưu trữ như vậy và bạn muốn sử dụng chúng như một toàn thể, thì bạn nên xem subrepositories. Tính năng này cho phép bạn bao gồm các kho lưu trữ khác trong thanh toán - tương tự như cách hoạt động của svn:externals
. Vui lòng theo dõi recommendations trên trang wiki đó.
Nguồn
2009-05-28 15:33:19
Từ những gì tôi đã nghe, đây là một lý do để không đưa một số dự án vào một repo. –