#mercurial
#mercurial
Вопрос:
Я использую Mercurial.
У меня есть некоторые незафиксированные изменения, но я нахожусь не на той ветке, как мне обновить нужную ветку и забрать изменения с собой?
Ответ №1:
Для незафиксированных изменений вы можете использовать расширение Shelve:
hg shelve --all
hg up correct_branch_name
hg unshelve
Комментарии:
1. Моя версия hg (3.7.3), похоже, не использует
--all
флаг. Просто вызываяhg shelve
полки все.
Ответ №2:
Я спросил в 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
Я спросил о «почему», и мне сказали: «вам не разрешено обновлять по веткам», что сначала не имело для меня смысла. Затем я понял, что, поскольку я прошел через общий корневой каталог, он не распространяется по ветвям.
Комментарии:
1. Круто! Большое вам спасибо! Это самый простой способ зафиксировать мои изменения в другой уже существующей ветке 🙂
Ответ №3:
Я обычно использую
hg qnew
hg qpop
hg up -c <target-rev>
hg qpush
hg qfinish qtip
Но я также использую подход jrwren, который довольно регулярно просматривает предка.