Mercurial возвращает/резервирует один файл
В Mercurial у меня есть старый набор изменений, который отлично сочетается с изменениями в один файл. Как я могу отменить изменения в этом одиночном файле?
Даже просто просмотр состояния файла в предыдущем наборе изменений был бы хорош, после чего я мог бы вырезать и вставить.
Мой Mercurial клиент TortoiseHg.
Ответы
Ответ 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
- Убедитесь, что флажок "Отменить все файлы для этой ревизии" не установлен (это будет
по умолчанию, выполнив следующие шаги)
Конечно, если под "старым набором изменений" вы подразумеваете, что есть последующие изменения в этом файле, который вы хотите сохранить, нет никакого способа сделать это, кроме как проверить набор изменений и вручную отменить изменения.