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

Извлечение старой версии файла без изменения родительской копии рабочей копии

Как вы получаете копию более ранней версии файла в Mercurial, не создавая новую рабочую копию файла по умолчанию в вашей рабочей области?

Я нашел команду hg revert, и я думаю, что она делает то, что я хочу, но я не уверен.

Мне нужно получить копию более ранней версии моего кода для работы в течение нескольких минут. Но я не хочу нарушать текущую версию, которая работает нормально.

Итак, я собирался сделать это:

hg revert -r 10 myfile.pls

Есть ли способ вывести его в другой каталог, чтобы моя текущая рабочая версия файла не была нарушена? Что-то вроде:

hg revert -r 10 myfile.pls > c:\temp\dump\myfile_revision10.pls
4b9b3361

Ответ 1

команда cat может использоваться для извлечения любой версии файла:

$ hg cat -r 10 myfile.pls

Вы можете перенаправить вывод в другой файл с помощью

$ hg cat -r 10 myfile.pls > old.pls

или с помощью флага --output. Если вам нужно сделать это для нескольких файлов, ознакомьтесь с командой архива , которая может сделать это для всего проекта, например,

$ hg archive -r 10 ../revision-10

Это создает папку revision-10, которая содержит моментальный снимок вашего репозитория, как он выглядел в редакции 10.

Однако большую часть времени вы должны просто использовать команду update для проверки более ранней версии. Обновление - это команда, которую вы используете, чтобы обновить рабочую копию после внесения новых изменений, но эту команду также можно использовать, чтобы при необходимости сделать вашу рабочую копию устаревшей. Так

$ hg update -r 10   # go back
(look at your files, test, etc...)
$ hg update         # go back to the tip

Ответ 2

Используемая вами команда:

hg cat -r 10 myfile.pls > C:\temp\dump\myfile_revision10.pls

Знание немного Unix помогает с командами Mercurial. Возможно, cat должен иметь встроенный псевдоним print или что-то подобное.