Подтвердить что ты не робот

Mercurial возвращает/резервирует один файл

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

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

Мой Mercurial клиент TortoiseHg.

4b9b3361

Ответ 1

По состоянию на TortoiseHg 2.8.1

  • Зафиксируйте, если что-то пойдет не так.
  • Щелкните правой кнопкой мыши версию, к которой вы хотите вернуться, выберите "Обзор по версии"
  • Найдите файл, который вы хотите вернуть к этой ревизии, щелкните правой кнопкой мыши, "Вернитесь к этой ревизии (Ctrl + Shift + R)
  • Повторите 3 для всех файлов, которые вы хотите вернуть

Ответ 2

Ответ Рагхурам больше не правильный из-за стилистических (~) изменений в TortoiseHG. "Браузер хранилища" был переименован в "TortoiseHG Workbench", но, что более важно, "Возвратить содержимое файла" больше не является действием в контекстном меню.

Начиная с версии 2.0.4, вы захотите:

  • Зафиксируйте текущий репозиторий в случае, если что-то пойдет не так.
  • Откройте соответствующий набор изменений в "Проводнике TortoiseHG"
  • В списке файлов щелкните правой кнопкой мыши файл, который вы хотите вернуть.
  • Выберите "Возврат к редакции" в контекстном меню.
  • Вам будет представлен диалог подтверждения, содержащий флажок "Отменить все файлы в эту ревизию". Убедитесь, что он не установлен.
  • Нажмите "ОК".
  • Убедитесь, что только тот файл был возвращен. Если все было возвращено, обновите версию, созданную на шаге 1.

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

Ответ 3

Откройте Repository Browser, перейдите в интересующий набор изменений. Вы увидите список измененных файлов. Выберите интересующий вас файл и нажмите Revert file contents

Ответ 4

CLI-версия, применимая к любой (новой) версии TortoiseHG

Чтобы отменить изменения только в FILE, введенные в набор изменений CSET, используйте эту форму резервного копирования

hg backout -r CSET --include FILE

Ответ 5

Я обнаружил, что ответ на вторую часть по крайней мере. Чтобы просмотреть содержимое одного файла при старой ревизии, выполните следующие действия в TortoiseHg:

  • Щелкните правой кнопкой мыши файл и выберите проводник репозитория.
  • Нажмите на версию, к которой вы хотите вернуться.
  • Щелкните правой кнопкой мыши на файле в нижней левой панели. Выберите либо просмотр в ревизии, либо сохранение в revison.

Ответ 6

Чтобы просмотреть старую версию файла с помощью TortoiseHg (начиная с версии 2.2.1), откройте TortoiseHG Workbench, щелкните правой кнопкой мыши по старой версии и нажмите "Обзор в rev..."

Ответ 7

В то время как рекомендация использовать TortoiseHg Browse at rev... поможет вам понять, что изменилось (то есть, что вы можете захотеть отступить), это не поможет вам отменить файл - если, как предлагает более одного ответа, вы выбираете Revert to Revision, вы будете только откладывать последующие изменения, а не изменения в наборе изменений.

Самый простой способ отменить набор изменений для одного файла (по крайней мере, с TortoiseHg 2.6.1):

  • Просмотрите файл в проводнике Windows и выберите его
  • Щелкните правой кнопкой мыши и в подменю контекстного меню TortoiseHg выберите Revision History
  • Выберите версию до того, который вы пытаетесь выполнить.
  • Щелкните правой кнопкой мыши и выберите Revert to Revision
  • Убедитесь, что флажок "Отменить все файлы для этой ревизии" не установлен (это будет по умолчанию, выполнив следующие шаги)

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