Mercurial: вернуть один кусок - PullRequest
16 голосов
/ 18 мая 2009

Как мне вернуть один кусок в Mercurial, подобно тому, как это делается в дарках, то есть он запрашивает у меня каждый кусок и файл, хочу ли я вернуть его? Возможно ли использовать TortoiseHg?

Спасибо

Ответы [ 3 ]

8 голосов
/ 23 февраля 2012

На самом деле Mercurial относится к «кускам», по крайней мере, в инструменте Полка. Что приводит меня к любимому способу их восстановления (и к любимым функциям TortoiseHg).

Просто переместите чанки, которые вы хотите вернуть, на полку, которую вы создаете исключительно с намерением удалить. Это работает очень хорошо, если куски определены так, как вам нужно. Если нет, у вас нет выбора, кроме как сделать что-то вручную.

Если вы используете TortoiseHg Workbench или VisualHg, очень просто перейти к инструменту Shelve: рядом с кнопками переключения режима diff есть кнопка. Если вы не знакомы с полками, сделайте себе одолжение и начните использовать его. Это сильно спасло меня, когда я забыл о раннем коммите или решил пропустить экспериментальный код из коммита.

4 голосов
/ 01 октября 2009

Для изменения набора изменений в одном файле попробуйте:

рт.ст. diff -c | патч -R

Это обратит ревизию, внесенную этой ревизией в это имя файла. Теперь, если бы в это могло быть включено то же самое поведение сбора вишен в стиле darcs / git, я был бы очень счастлив

4 голосов
/ 21 мая 2009

Расширение record вдохновлено darcs record. Это позволит вам добавить только определенные фрагменты к следующему коммиту, т. Е. Противоположное тому, что вы хотите. Но вы можете добавить все блоки, кроме той, которую хотите отменить, и затем сделать hg revert, чтобы отменить ее. Немного задом наперед, я знаю ...: -)

Вы также можете сделать hg diff > patch; hg revert, отредактировать patch, чтобы удалить блок, и сделать hg import --no-commit, чтобы заново установить патч. Это, вероятно, быстрее, но требует, чтобы вы вручную редактировали патч. Я имел большой успех с Emacs diff-mode, но так как вы спрашиваете о TortoiseHg, вы можете не захотеть использовать Emacs.

...