Hg strip vs hg backout и hg revert

В чем разница между командами mercurial,

  • hg strip
  • hg backout
  • hg revert

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

Ответ 1

hg strip удаляет набор изменений и все его потомки из репозитория. Это будет так, как будто изменения никогда не существовали. Будьте осторожны при использовании этого на public наборах изменений, поскольку он не удалит его из какого-либо другого репозитория, и вы получите их в следующий раз, когда вы потянете.

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

hg revert с обновлением обновляет рабочую копию до указанной ревизии. Если вы затем зафиксируете эту рабочую копию, это приведет к возврату всех изменений с тех пор.

Другие ответы с дополнительной информацией о возврате и резервном копировании:

Ответ 2

В определенный момент мне пришлось построить конвейер Jenkins, в котором файлы POM должны возвращаться при каждом запуске задания. И проблема, с которой я столкнулся: как реверсировать все файлы POM.

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

hg revert */pom.xml