2011-11-03 29 views

Trả lời

26

Đối với những thay đổi uncommited bạn có thể sử dụng Shelve extension:

  1. hg shelve --all
  2. hg up correct_branch_name
  3. hg unshelve
+1

Phiên bản hg của tôi (3.7.3) dường như không sử dụng cờ '--all'. Đơn giản chỉ cần gọi 'hg shelve' kệ mọi thứ. – ForeverWintr

9

Tôi hỏi trên irc

MPM nói

hg diff > mychanges; hg up -C somewhere; hg import --no-commit mychanges 

mà tôi đã xem xét nhưng là những gì tôi đã cố gắng để tránh.

D70 nói

i think you can easily do it by "hg update"ing to a changeset that is a 
parent of the branch you're trying to switch to, and then "hg update"ing to the 
tip of that branch 

vì vậy tôi đã làm điều đó.

hg up -r <shared root rev> 
hg up branchIwant 

Tôi hỏi về "tại sao" và được thông báo "bạn không được phép cập nhật trên các nhánh" vốn không có ý nghĩa gì với tôi lúc đầu. Sau đó, tôi nhận ra rằng bởi vì tôi đã đi qua rev gốc chia sẻ, nó không phải là trên các chi nhánh.

+0

Cool! Cảm ơn bạn rất nhiều! Đó là cách đơn giản nhất để thực hiện các thay đổi của tôi cho một nhánh đã tồn tại khác :) –

0

Tôi thường sử dụng

hg qnew 
hg qpop 
hg up -c <target-rev> 
hg qpush 
hg qfinish qtip 

Nhưng tôi cũng sử dụng phương pháp jrwren của trải qua một tổ tiên khá thường xuyên.

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