Использование hg revert в Mercurial


Я использую Mercurial. Я сделал клон репозитория. Для отладки я изменил несколько строк кода в файле java. Однако я не совершал этих изменений. Я просто хочу вернуть их обратно в исходное состояние, как найдено в репозитории. Я пытался hg revert filename.java, который вернул его, но теперь, когда я делаю hg status, Я вижу дополнительные файлы, добавленные в мою папку теперь, как:

? filename.java.orig

могу ли я просто удалить эти файлы, и почему Mercurial делает их, когда я использую revert?

8 61

8 ответов:

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

вы также можете использовать флаг --no-backup и the .orig файлы не будут созданы

hg revert --no-backup filename.java

начиная с Mercurial 2.0, вы можете вместо этого использовать флаг-C для подавления .orig файлы от создания

hg revert -C filename.java

найти очистить расширением удобно. Использование:

hg purge

"Это расширение удаляет все файлы и каталоги, не отслеживаемые Mercurial" - в том числе .orig файлы, но исключая игнорируемые файлы (если вы не используете --all).

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

Вы можете удалить их, выполнив эту команду из корня репозитория:

rm `hg st -un | grep orig`

Если вы хотите вернуться, и не заботитесь вообще о резервном копировании исходных файлов, команда, которую вы хотите:

hg update -C

Это копии файлов до того, как вы их вернули. Если они вам не нужны, вы можете удалить их вручную или с помощью очистить расширение:

hg clean

эти резервные файлы могут быть созданы для операций слияния и возврата (ср. на странице). Вы можете добавить правило игнорирования, если хотите, или просто удалить их, если они вам больше не нужны.

Это довольно распространенные, возникающие в результате различных операций. Взгляд на один из репозиториев среднего размера, над которым я работаю, находит 237 из них. Мне не нравится удалять вещи, которые могут оказаться полезными, и у меня нет причин называть законные файлы с тем же суффиксом, поэтому я добавляю следующее .hgignore вместо этого:

.\.orig$

Я сам сделал этот пакетный файл.

IF "%1%" == "d" (
    del /s *.orig
    del /s *.rej
 ) ELSE ( 
    del /s /p *.rej
    del /s /p *.orig
 )

помогите: Сохраните это содержимое как ориг.летучая мышь

  1. Run orig d удалить все браки и orig файлы сразу без подтверждения
  2. Run orig удалить файлы с подтверждением [механизм]

надеюсь, что это полезно.