Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
hgbook.pdf
Скачиваний:
50
Добавлен:
17.03.2015
Размер:
3.15 Mб
Скачать

Поиск и исправление ваших ошибок

9.2. Отмена ошибочных изменений

Если вы изменили файл, но потом решили, что вообще не хотите его изменять, и если вы ещё не зафиксировали изменения, то команда hg revert — то, что вам нужно. Она смотрит на предыдущую ревизию рабочей директории и восстанавливает содержимое файла к состоянию из этой ревизии. (Это многоречивый способ сказать, что обычно эта команда отменяет ваши изменения.)

Давайте посмотрим, как работает команда hg revert. В этом маленьком примере мы начнем с изменения файла, о котором Mercurial уже знает.

$ cat file original content

$ echo unwanted change >> file $ hg diff file

diff -r af8f1f5e8d54 file

--- a/file Thu Feb 02 14:09:48 2012 +0000

+++ b/file Thu Feb 02 14:09:48 2012 +0000 @@ -1,1 +1,2 @@

original content +unwanted change

Нам не нужно это изменение, поэтому мы вызываем hg revert для этого файла.

$ hg status

M file

$ hg revert file $ cat file original content

Команда hg revert дополнительно заботится о безопасности данных, сохраняя наш измененный файл с расширением .orig.

$ hg status

? file.orig

$ cat file.orig original content unwanted change

Будьте осторожны с .orig файлами

Крайне нежелательно, чтобы вы управляли .orig-файлами с помощью Mercurial, и даже чтобы вы задумывались о содержании этих файлов. На всякий случай, полезно помнить, что hg revert безоговорочно переписывает существующий .orig-файл. Например, если у вас уже есть файл с именем foo.orig когда вы откатываете foo, содержимое foo.orig будет перезаписано.

Ниже приведена сводка случаев, в которых может быть полезна команда hg revert. В следующей секции будет детальное описание каждого из них.

Если вы изменяете файл, она восстановит его до немодифицированного состояния.

Если вы используете hg add, она отменит «добавленное» состояние файла, но оставит сам файл неизменным.

Если вы удаляете файл не сказав об этом Mercurial-у, она восстановит файл с его предыдущим содержанием.

Если вы удаляете файл командой hg remove, она отменит «удаленное» состояние файла, и восстановит его немодифицированное содержимое.

9.2.1. Ошибки управления файлами

Команда hg revert полезна не только для только что измененных файлов. Она позволяет отменить результат любой команды управления файлами — hg add, hg remove и др.

Если вы использовали hg add для файла, но потом понимаете, что не хотите, чтобы Mercurial отслеживал его, используйте hg revert для отмены добавления. Не волнуйтесь: Mercurial не изменит файл ни в коем случае. Mercurial просто снимет пометку добавления файла.

92

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]