2008-11-03 32 views

Trả lời

53

Cách tốt nhất để thực hiện việc này là sử dụng 'convert' extension. Bạn sẽ sử dụng đồng bóng và cả nguồn và loại đích và sau đó sử dụng một --filemap với các mục như:

exclude path/you/do/not/want 
rename path/you/do/want . 

Các đổi tên là chỉ cần thiết nếu bạn muốn lấy những phần bạn đang giữ và di chuyển chúng "cao" trong hệ thống phân cấp thư mục.

+4

Điều này sẽ không hoạt động: đổi tên đường dẫn/bạn/do/muốn/ Điều này sẽ: đổi tên đường dẫn/bạn/do/muốn. Điều này chỉ áp dụng nếu bạn đang di chuyển một đường dẫn đến thư mục gốc. –

+0

Thật vậy, cảm ơn, Nathan. –

+2

http://mercurial.selenic.com/wiki/ConvertExtension – Julian

-4

Chỉ cần sao chép và xóa nội dung không mong muốn ra khỏi mỗi bản sao.

+1

Điều đó không giúp đỡ. Mọi đóng vẫn có lịch sử đầy đủ, do đó, "quá nhiều thứ" sẽ luôn ở đó trong thư mục ".hg" chiếm dung lượng. –

+10

ah, bạn muốn hình thức kiểm soát phiên bản Stalinist kiểm soát phiên bản. ;) http://en.wikipedia.org/wiki/Historical_revisionism_(negationism) –

+0

@ Ry4an Nhưng không phải là bản sao hiệu quả sao chép của nhau? Có nghĩa là có, lịch sử sửa đổi cho các mục đã xóa sẽ có trong cả hai kho lưu trữ nhưng chỉ được lưu trữ một lần trên đĩa phải không? Vì vậy, nếu tôi nhân bản một kho lưu trữ với một số vòng quay đến các tệp A - D và sau đó bị xóa để cung cấp cho tôi kho lưu trữ A/B và C/D, tôi chỉ lưu trữ một bản sao của tất cả các vòng quay của AD cùng với một thay đổi bổ sung trong mỗi cái cho thấy C/D đã được loại bỏ trong một và A/B trong khác. Đúng? –

0

Tôi tìm thấy một hướng dẫn chi tiết here:

Tạo một bản đồ tập tin new-repo.filemap như

include vendor/FooBackend 
rename vendor/FooBackend . 

Tạo một bản đồ tập tin rewrite-old-repo.filemap:

exclude vendor/FooBackend 

Tạo kho mới:

hg convert /path/to/current/repo /path/to/new/repo --filemap new-repo.filemap 

Kho lưu trữ mới hiện đã hoàn tất. Thư mục trống, nhưng hg update sẽ làm tăng nội dung của thư mục.

Tạo kho sửa đổi:

hg convert /path/to/current/repo /path/to/rewritten/repo --filemap rewrite-old-repo.filemap 
Các vấn đề liên quan