Случайно работает с неправильно названной веткой в ​​Mercurial - PullRequest
11 голосов
/ 28 февраля 2011

Я вносил некоторые изменения в свой рабочий каталог и заметил, что я случайно работал с неправильной веткой. Я еще ничего не совершал, и я хотел бы, чтобы мой следующий коммит пошел против другой ветви. Каков наилучший способ сделать это?

Ответы [ 3 ]

17 голосов
/ 28 февраля 2011

Расширение Shelve может принести вам горе, и это можно сделать полностью с помощью команд Mercurial. У Кртека почти было это, но он использовал export вместо diff. Попробуйте это:

hg diff --git > ~/saved-work.patch
hg update --clean desiredbranch
hg import --no-commit ~/saved-work.patch
3 голосов
/ 28 февраля 2011

Вы должны быть в состоянии просто hg up otherbranch. Важно, чтобы вы не использовали опцию --clean для hg up ни напрямую, ни через псевдоним, так как это отменит ваши незафиксированные изменения.

Другой вариант - использовать одно из расширений, которое обеспечивает hg shelve. Процесс будет тогда:

$ hg shelve --all
$ hg up otherbranch
$ hg unshelve

Это создаст патч с вашими изменениями в каталоге .hg, вернет ваш рабочий каталог в чистое состояние, переключится на «otherbranch», а затем применит сохраненный патч.

1 голос
/ 28 февраля 2011

Я не знаю, является ли это лучшим решением, но вы можете выполнить следующие действия:

1 ° hg diff --git > modifications.patch

2 ° hg update -C the_right_branch

3 ° hg patch modifications.patch

Может быть, лучше скопировать файл модификаций. На всякий случай безопасное место.

edit: обновить с помощью diff вместо экспорта. Спасибо комментаторам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...