Tôi có một kho Mercurial lớn mà tôi đã quyết định sẽ tốt hơn như một số kho nhỏ hơn. Có cách nào để tôi có thể phân chia kho lưu trữ và có từng phần giữ lại lịch sử sửa đổi của nó không?Tôi có thể chia một kho lưu trữ Mercurial không?
Trả lời
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.
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.
Đ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. –
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) –
@ 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? –
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
- 1. Thêm thay đổi từ một kho lưu trữ Mercurial sang một kho lưu trữ Mercurial khác
- 2. làm sạch một Kho lưu trữ Mercurial
- 3. Làm cách nào để tôi có thể lưu trữ một kho lưu trữ Mercurial cho nhiều người dùng?
- 4. Có thể thanh toán một thư mục đơn lẻ từ kho lưu trữ Mercurial (HG) không?
- 5. Sao lưu kho lưu trữ của Mercurial tại địa phương
- 6. Nhiều dự án Eclipse trong một kho lưu trữ Mercurial
- 7. Nhân bản một kho lưu trữ Mercurial qua SSH
- 8. Bzr: Tạo kho lưu trữ được chia sẻ từ kho lưu trữ độc lập hiện có
- 9. Cách sao chép kho lưu trữ đến một máy chủ/kho lưu trữ từ xa với Mercurial
- 10. Có thể kéo từ/đẩy tới kho lưu trữ SourceGear Vault bằng Mercurial không?
- 11. Di chuyển kho lưu trữ Mercurial cục bộ sang Bitbucket
- 12. Nhân bản kho lưu trữ Mercurial từ C#?
- 13. Mercurial hg phục vụ nhiều kho lưu trữ
- 14. Kho lưu trữ Mercurial nhiều người dùng qua SSH?
- 15. Gọi một Kho lưu trữ từ Kho lưu trữ
- 16. Làm cách nào để đẩy một dự án mới vào một kho lưu trữ Mercurial được chia sẻ?
- 17. Một kho lưu trữ có nên gọi một kho lưu trữ khác không? Hoặc một kho lưu trữ nên gọi một lớp dịch vụ?
- 18. Tôi có thể sao chép một kho lưu trữ git vào Windows không?
- 19. Tôi có thể tạo nhiều hơn một kho lưu trữ cho các trang github không?
- 20. Thực hiện .hgignore trong một kho lưu trữ Mercurial có sẵn cho tất cả các subrepos?
- 21. Mercurial: kho lưu trữ dạng hạt Vs kho lưu trữ lớn và các công cụ của bên thứ ba được chia sẻ trong điều khiển phiên bản
- 22. Tốt hơn là chi nhánh hoặc ngã ba một kho lưu trữ Mercurial?
- 23. Lưu trữ Mercurial trên IIS7
- 24. Kho lưu trữ vẫn là Kho lưu trữ không có Đơn vị công việc?
- 25. Tại sao kho lưu trữ Git của tôi lớn hơn nhiều so với phiên bản Mercurial?
- 26. Mercurial: Tại sao tôi gặp lỗi 404 khi chuyển đến một kho lưu trữ có URL mà tôi có thể truy cập trong trình duyệt?
- 27. Cách cấu hình tốt nhất kho lưu trữ trung tâm/nhiều kho trung tâm cho Mercurial?
- 28. git subtree: có thể thay đổi nhánh/đường dẫn con trong một kho lưu trữ được chia nhỏ không?
- 29. Ghi đè kho lưu trữ git từ xa với kho lưu trữ của tôi
- 30. Cách chia sẻ tệp trên các kho lưu trữ git?
Đ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. –
Thật vậy, cảm ơn, Nathan. –
http://mercurial.selenic.com/wiki/ConvertExtension – Julian