Mercurial: как изменить последний коммит?

Я ищу аналог git commit --amend в Mercurial, то есть способ изменить commit, с которым связана моя рабочая копия. Меня интересует только последняя фиксация, а не произвольная более ранняя фиксация.

Требования к этой процедуре изменения следующие:

  • если возможно, она не должна требовать каких-либо расширений. Он не должен требовать нестандартных расширений , то есть расширений, которые не поставляются с официальной установкой Mercurial.

  • если фиксация изменения является одной из глав моей текущей ветки, не следует создавать новую голову . Если фиксация не является головкой, может быть создана новая голова.

  • процедура должна быть безопасной таким образом, чтобы, если по каким-либо причинам изменение не удается, я хочу восстановить ту же рабочую копию и состояние репозитория, что и до изменения. Другими словами, если само изменение может завершиться неудачно, должна быть безопасная процедура для восстановления рабочей копии и состояния репозитория. Я имею в виду «сбои», которые лежат в природе процедуры исправления (например, конфликты), а не проблемы, связанные с файловой системой (например, ограничения доступа, невозможность заблокировать файл для записи, ... )

Обновление (1):

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

Обновление (2):

  • файлы в рабочем каталоге нельзя трогать (на некоторых измененных файлах могут быть блокировки файловой системы). Это, в частности, означает, что возможный подход может ни в коем случае не требовать чистого рабочего каталога.
209
задан DaveInCaz 24 April 2019 в 01:31
поделиться