Je recherche une contrepartie git commit --amend
dans Mercurial, c'est-à-dire un moyen de modifier le commit auquel ma copie de travail est liée. Je ne suis intéressé que par le dernier commit, pas par un commit antérieur arbitraire.
Les exigences de cette procédure de modification sont les suivantes:
si possible, il ne devrait nécessiter aucune extension. Il ne doit pas nécessiter d'extensions autres que celles par défaut , c'est-à-dire des extensions qui ne sont pas fournies avec une installation Mercurial officielle.
si l'engagement de modification est un responsable de ma branche actuelle, aucun nouveau responsable ne doit être créé. Si le commit n'est pas head, un nouveau head peut être créé.
la procédure doit être sécurisée de telle sorte que si, pour une raison quelconque, la modification échoue, je souhaite que le même état de copie de travail et de référentiel soit restauré qu'avant la modification. En d'autres termes, si la modification elle-même peut échouer, il devrait y avoir une procédure de sécurité intégrée pour restaurer l'état de la copie de travail et du référentiel. Je fais référence aux "échecs" qui relèvent de la nature de la procédure de modification (comme par exemple les conflits), pas aux problèmes liés au système de fichiers (comme les restrictions d'accès, le fait de ne pas pouvoir verrouiller un fichier pour l'écriture, ... )
Mise à jour (1):
- la procédure doit être automatisable , afin qu'elle puisse être effectuée par un client GUI sans aucune interaction utilisateur requise.
Mise à jour (2):
- les fichiers du répertoire de travail ne doivent pas être touchés (il peut y avoir des verrous du système de fichiers sur certains fichiers modifiés). Cela signifie notamment qu'une approche possible ne peut à aucun moment nécessiter un répertoire de travail propre.