La technique pourrait s’appeler comment merger/combiner une modification sur des patch présent localement avec MQ (mqueues), les instruction étant adapté pour TortoiseHg.

Le scénario :
– Vous découvrez qu’une partie de la modif que vous avez faites au moins 5 commit avant était une connerie
– Vous pouvez juste ajouter un commit contenant une annulation sur cette erreur, mais c’est moche d’avoir cette erreur qui trainera à jamais dans l’historique, alors qu’elle n’est pas encore poussée sur le repository
(en plus elle peut perturber un merge, car HG va successivement merger l’erreur, avant de merger plus tard la correction de cette erreur)
– Voici comment faire pour réécrire l’histoire avec mqueues (y en a qui aimerait en faire autant dans d’autres domaines !)

La méthode :
– Ecrire le correctif sur l’erreur, fait un « commit »
– Revenir au commit où l’erreur a été commise initialement, et faire « Import to MQ » dans modifier l’historique
– Toujours en sélectionnant ce même commit, faire un « unapply patch (qgoto parent) »
– Résultat : Tous les patch à partir de l’erreur initiale sont maintenant dans l’état « unapplied », et un drag&drop à la souris permet de les réordonner. On déplace le dernier, le correctif sur l’erreur, vers le début de la liste, juste au-dessus de celui qui contient l’erreur
– Une fois déplacé, on le sélectionne, l’option « Fold patches » est enfin disponible pour le merger avec le précédent, celui où on a fait l’erreur
– On revient au patch le plus haut dans la liste, et on fait un « apply patch », qui applique aussi tous ceux qui précède
– Et puis ensuite un « Finish patch » qui sort les éléments de mq, et les remet en tant que commit standard.
Voili, voilou,