Khi thay đổi VCS cho dự án của tôi FakeItEasy từ SVN sang Mercurial trên Google Code Tôi hơi quá háo hức (tôi buồn cười như thế). Những gì tôi đã làm là chỉ cần kiểm tra phiên bản mới nhất của SVN và sau đó cam kết thanh toán đó như là phiên bản đầu tiên của repo Mercurial mới. Điều này rõ ràng là có hiệu lực mà tất cả lịch sử bị mất.Thêm thay đổi từ một kho lưu trữ Mercurial sang một kho lưu trữ Mercurial khác
Sau đó khi nhận được một chút tốt hơn quen với Mercurial tôi nhận ra rằng có một điều như là một "phần mở rộng chuyển đổi" cho phép bạn chuyển đổi một repo SVN thành một repo Mercurial. Bây giờ những gì tôi muốn làm là để chuyển đổi repo SVN cũ và sau đó có tất cả các bộ thay đổi từ repo Mercurial hiện tại được nhập vào repo này ngoại trừ cam kết đầu tiên cho Mercurial.
Tôi đã chuyển đổi repo SVN thành một repo Mercurial địa phương nhưng bây giờ là khi tôi bị mắc kẹt. Tôi nghĩ rằng tôi có thể sử dụng phần mở rộng chuyển đổi để mang lại kho Mercurial hiện tại vào một chuyển đổi và có một bản đồ ghép nối loại bỏ cam kết đầu tiên nhưng tôi dường như không thể làm điều này để làm việc.
Tôi cũng đã cố gắng chỉ sử dụng chuyển đổi mà không có bản đồ mối nối để nhận tất cả các bộ thay đổi từ hiện tại Mercurial repo thành chuyển đổi và rebase phiên bản thứ hai trong hiện tại đến cam kết cuối cùng từ kho SVN cũ nhưng tôi cũng không thể làm được điều đó.
Để làm rõ ràng hơn này cho phép nói rằng tôi có hai kho này:
A: revA1-revA2
B: revB1-revB2-revB3 (Where revB1 is actually a copy of revA2)
Bây giờ tôi muốn kết hợp hai thành kho chứa mới này:
C: revA1-revA2-revB2-revB3
này hoạt động hoàn hảo, ngoại trừ một điều. Tôi không thể có vẻ để có được nhập khẩu để làm việc với các ký tự đại diện vì vậy tôi đã phải làm một nhập khẩu cho mỗi tập tin vá lỗi, nhưng tôi chỉ phải làm điều này một lần nào. Cảm ơn! –
Yeah thẻ hoang dã sẽ chỉ làm việc trên unix nơi vỏ của bạn không glob mở rộng. Trên cửa sổ mỗi ứng dụng cần logic đó, vì vậy nếu bạn đang ở trên cửa sổ, bạn sẽ cần một vòng lặp FOR hoặc chỉ chạy từng cái như bạn đã làm. Vui vì nó hoạt động. –
Nó có thể không hoạt động trên Linux cũng vì một lý do đơn giản: changesets được đánh số bằng cách sử dụng một số chữ số (tức là 1,2,3, ..., 10,11, ... 100,101, v.v.), gây ra ' changeset-10.patch' được nhập trước 'changeset-2.patch' theo mở rộng vỏ bình thường. Bạn nên sắp xếp chúng: 'hg nhập $ (ls * .patch | sort -V)' –