Như hướng dẫn rõ ràng aptly points out (tìm kiếm cho "Thẻ và nhân bản"):Làm cách nào để lấy thẻ changeset sau khi bạn sao chép hoặc kéo vào thẻ bằng cách sử dụng mercurial?
Khi bạn chạy
hg clone -r foo
nhân bản một kho lưu trữ như các thẻfoo
, các bản sao mới sẽ không chứa bất kỳ phiên bản mới hơn một trong những thẻ đề cập đến, bao gồm sửa đổi nơi thẻ được tạo. Kết quả là bạn sẽ nhận đúng tập hợp con của lịch sử của dự án trong kho lưu trữ mới, nhưng không phải là thẻ bạn có thể đã mong đợi.
Có nghĩa là hg tags
trong bản sao mới của bạn KHÔNG hiển thị thẻ foo
. Điều tương tự cũng xảy ra nếu bạn đã nhân bản trước khi thêm thẻ foo
và bạn thực hiện hg pull -r foo
.
(Digression: tag là điều duy nhất tôi không hoàn toàn có được trong hg. Tôi hiểu có những lợi thế (ví dụ: merge) khi đặt nó vào một changeset, nhưng nó luôn cảm thấy kỳ lạ khi có dữ liệu meta được trộn với nguồn code.)
Rõ ràng là tôi đang yêu cầu một cách tự động, thay vì kéo thẻ changeset thành một bước thủ công riêng biệt.
Tôi biết tôi có thể kiểm tra trường hợp này trong móc incoming
(vì vậy nó hoạt động cho cả bản sao và kéo) hoặc quấn clone
và pull
.
Nhưng có cách nào tốt hơn/dễ hơn không?
CẬP NHẬT trình theo dõi lỗi hg đã có this issue.
thẻ giới thiệu các thay đổi đã trở thành một trong số ít những điều tôi thực sự không thích về Mercurial –