2010-03-02 30 views
48

Tôi đang cố gắng lúng túng Mercurial và hy vọng tôi chỉ đang bối rối ở đây!Tại sao tôi không thể đẩy thay đổi này vào kho lưu trữ thủy ngân 'chính' của tôi?

Tôi có một kho lưu trữ ('chính') mà tôi đã nhân bản ('clone'), cả trên máy của riêng tôi. Cả hai đều hoàn toàn đồng bộ với nhau.

Tôi quyết định chơi với các nhánh được đặt tên để lần sau tôi thực hiện 'bản sao' tôi đã làm nó dưới tên chi nhánh 'case1212' và mặc dù nó có vẻ đã được xử lý đúng trên bản sao của tôi, tôi không thể đẩy những thay đổi này trở lại 'chính'. Lỗi được đưa ra là:

abort: push creates new remote branch 'case1212'! 

... và điều này gợi ý rằng tôi có thể cần hợp nhất trước? Tôi phải hợp nhất vào kho chứa 'bản sao' đó là gì? Khi tôi cố gắng kéo từ 'chính', không có thay đổi.

Tôi khá chắc chắn rằng tôi thực sự muốn tạo một nhánh từ xa trong kho lưu trữ 'chính' của tôi để những người cập nhật từ đó có thể thấy chi nhánh đó.

Trả lời

50

Hành vi mặc định của Mercurial ngăn bạn tạo các nhánh từ xa. Nếu bạn muốn làm điều này, bạn cần phải đẩy mạnh.

Menu đồng bộ hóa trong cửa sổ bạn hiển thị, có một tùy chọn cho lực đẩy.

+0

không phải là phương pháp hay nhất để hợp nhất các thay đổi từ xa cục bộ và sau đó nhấn? – gcb

+4

@gcb đôi khi bạn thực sự muốn có một nhánh mới trên kho lưu trữ máy chủ để nó có sẵn cho người khác xem và sử dụng. Nhưng nếu nó chỉ là một đầu riêng biệt bởi vì bạn đã không sáp nhập những thay đổi của người khác tại địa phương thì có, bạn nên hợp nhất trước khi đẩy và sau đó bạn không cần phải ép buộc. – Rory

19

Cảnh báo với bạn rằng thao tác đẩy của bạn sẽ tạo các đầu từ xa mới (và trong trường hợp này là nhánh). Nếu bạn đồng ý với điều đó, và nó có vẻ như bạn đang có, bạn có thể đẩy với push -f.

Séc này ở trong đó để nếu bạn muốn nhánh đó1212 không quay trở lại máy chủ chính, bạn có thể thực hiện hg push -r default và sau đó bạn sẽ không thấy cảnh báo này và không gửi case1212.

Khi bạn đã thực hiện việc này cho case1212, bạn sẽ không thấy cảnh báo nữa vì case1212 đã có.

Phiên bản mới hơn của mercurial khiến cảnh báo có vẻ ít đáng sợ hơn trong trường hợp đầu mới là nhánh mới.

25

Rùa giờ đây có tùy chọn Push new branch có thể an toàn hơn Force pull or push. Công cụ dòng lệnh có cờ - nhánh mới.

Cập nhật: Giao diện rùa mới khiến việc tìm kiếm trở nên khó khăn hơn một chút. Chuyển sang chế độ xem Đồng bộ hóa, sau đó nhấp vào tùy chọn và chọn cho phép đẩy nhánh mới.

+9

Nó và tôi tận dụng tốt nó! Tôi ghét có lực đẩy trái trên vĩnh viễn, chỉ cảm thấy một chút giống như chạy Linux như là người chủ tất cả các thời gian. –

Các vấn đề liên quan