2013-08-24 34 views
5

Tôi đã làm việc trong branch-a khi tôi tìm thấy lỗi không liên quan phải được sửa trong chi nhánh default. Vì vậy, tôi muốn cam kết một số thay đổi của tôi thành default, sau đó hợp nhất default vào nhánh hiện tại và tiếp tục làm việc.hg: Cam kết một số thay đổi đối với một chi nhánh khác

Theo như tôi biết, Mercurial không cho phép cam kết trực tiếp vào chi nhánh khác, vì vậy tôi sẽ phải chuyển sang nhánh mặc định trước tiên. Vấn đề là, tôi không thể chỉ đơn giản là kiểm tra các chi nhánh mặc định, bởi vì những thay đổi khác sẽ gây ra xung đột. Một quy trình làm việc mà tôi có thể nghĩ là đặt giá, thanh toán mặc định, chỉ xóa các tệp có liên quan đến sửa lỗi, cam kết, thanh toán chi nhánh-a, hợp nhất mặc định và cuối cùng, bỏ trống phần còn lại của tệp. Có cách nào dễ dàng hơn để thực hiện việc này không?

Trả lời

0
  • Cam kết chỉ tập hợp con của các tập tin, liên quan đến branch-a thay đổi (sử dụng thêm sức mạnh của Ghi mở rộng, nếu của bugfix và thay đổi ngành của một xảy ra ở một số file (s) - cam kết chỉ cần hunks của file) như changeset Một

Nếu bạn không có MQ Extension:

  • Commit phần còn lại của những thay đổi vào branch-a như changeset B (con của A)
  • rebase B (với rebase Ext ension) changeset vào default chi nhánh với --keep tùy chọn trong oder để có B ở vị trí ban đầu cũng

Nếu bạn có MQ mở rộng

  • Tạo bản vá mới với lao động dir thay đổi
  • Unapply MQ-vá
  • Update để default
  • Apply vá
  • test, kiểm tra ...
  • vá Finish (chuyển đổi sang changeset vĩnh viễn)
  • Graft changeset này chỉ vào branch-a chi nhánh
+0

Cảm ơn! Tôi chỉ mơ hồ nhận ra sự phản kháng, nhưng bây giờ tôi thấy quan điểm của nó. – alekop

+0

Thật tốt khi biết cách làm lại và sửa lỗi mq-patch. Tuy nhiên, giá đỡ -> switch branch -> unshelve dường như dễ dàng hơn cho tôi. Dù sao cũng cảm ơn bạn. –

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