Estou procurando uma contraparte git commit --amend
no Mercurial, ou seja, uma maneira de modificar o commit ao qual minha cópia de trabalho está vinculada. Estou interessado apenas no último commit, não no arbitrário anterior.
Os requisitos para este procedimento de alteração são:
se possível, não deve exigir extensões. Ele não deve exigir extensões não padrão , ou seja, extensões que não vêm com uma instalação oficial do Mercurial.
se o commit para corrigir for um chefe do meu ramo atual, nenhum novo chefe deverá ser criado. Se o commit não for head, um novo head poderá ser criado.
o procedimento deve ser seguro de forma que, se por qualquer motivo a alteração falhar, desejo que a mesma cópia de trabalho e estado do repositório sejam restaurados como antes da alteração. Por outras palavras, se a alteração em si pode falhar, deve haver um procedimento à prova de falhas para restaurar a cópia de trabalho e o estado do repositório. Estou me referindo a "falhas" que estão na natureza do procedimento de alteração (como, por exemplo, conflitos), não a problemas relacionados ao sistema de arquivos (como restrições de acesso, não ser possível bloquear um arquivo para gravação, ... )
Atualização (1):
- o procedimento deve ser automatizável , para que possa ser executado por um cliente da GUI sem nenhuma interação do usuário necessária.
Atualização (2):
- os arquivos no diretório de trabalho não devem ser tocados (pode haver bloqueios do sistema de arquivos em certos arquivos modificados). Isso significa especialmente que uma abordagem possível pode em nenhum momento exigir um diretório de trabalho limpo.