Ответ 1
Для немедленных изменений вы можете использовать Расширение Shelve:
-
hg shelve --all
-
hg up correct_branch_name
-
hg unshelve
Я использую Mercurial.
У меня есть некоторые незафиксированные изменения, но я нахожусь на неправильной ветке, как мне обновиться до правой ветки и внести изменения со мной?
Для немедленных изменений вы можете использовать Расширение Shelve:
hg shelve --all
hg up correct_branch_name
hg unshelve
Я спросил irc
mpm сказал
hg diff > mychanges; hg up -C somewhere; hg import --no-commit mychanges
который я рассматривал, но это то, чего я пытался избежать.
d70 сказал
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
поэтому я сделал это.
hg up -r <shared root rev>
hg up branchIwant
Я спросил о "почему", и мне сказали: "вам не разрешено обновлять по веткам", что сначала не имело смысла для меня. Тогда я понял, что, поскольку я прошел через общий корень rev, это не по веткам.
Я обычно использую
hg qnew
hg qpop
hg up -c <target-rev>
hg qpush
hg qfinish qtip
Но я также использую подход jrwrens для регулярного прохождения предка.