2014-01-02 4 views
2

Есть ли простой эквивалент использования git revert, в mercurial? Очевидно, что hg revert является средним для проверки определенного файла, я не нашел четкого ответа на вопрос о том, как добавить фиксацию (git cherry-pick) или применить обратный дифференциал фиксации (git revert).Есть ли эквивалент git Revert/cherry-pick для Hg?

Я хочу обратить вспять некоторые фиксации на ветку по умолчанию, которые были отброшены назад, а не отменять их до или после - так что hg backout или hg revert не кажутся правильной командой.

ответ

1

В отношении http://www.wikivs.com/wiki/Git_vs_Mercurial эквивалентами являются hg graft и hg backout соответственно.

Почему вы считаете, что резервное копирование - это не тот, который вам нужен? Это в основном делает обратный патч старой фиксации (но в большинстве случаев не автокоммутируется).

+0

Не так уж плохо, хотя в одном случае он удаляет весь исходный файл с новым файлом и дает почти совершенно бесполезный diff с <<< всем локальным ===== всем остальным >>>> – NoBugs

3

Git-Hg Rosetta Stone, как правило, хороший ресурс, но он не обрабатывает случаи, которые вы ищете. Как отметил Торек, http://www.wikivs.com/wiki/Git_vs_Mercurial - еще один ресурс.

Эквивалент git cherry-pick: hg graft.

Эквивалент git revert действительно hg backout - похоже, вы неправильно поняли, что он делает в некотором роде. hg backout создаст новый набор изменений, который изменит изменения в одном предыдущем наборе изменений. Поскольку вы говорите об изменении набора с некоторого времени назад, hg backout объединит изменения в ваш рабочий каталог (сначала сделайте hg update -C), и вам придется вручную его зафиксировать.

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

Смежные вопросы