J'ai un clone d'un dépôt central à la rév 2048. Je veux supprimer les 10 derniers changements sur mon dépôt local comme si j'étais de retour il y a deux semaines. Je suppose que je pourrais supprimer mon référentiel local et faire "hg clone -rev 2038"
mais ce serait long (le clonage du dépôt prend plusieurs minutes). Existe-t-il un moyen de simplement "décompresser" certains ensembles de modifications?
Remarques:
Utilisez la commande strip:
hg strip -r 2039
Cette commande est fournie par StripExtension . Il est distribué dans le cadre de Mercurial 2.8 et versions ultérieures, mais vous devez d'abord l'activer en ajoutant les lignes suivantes à votre .hgrc ou Mercurial.ini:
[extensions]
strip =
Avant Mercurial 2.8, il faisait partie de la MqExtension .
Pour vous empêcher de détruire accidentellement l'historique, la commande générera un ensemble de sauvegarde dans .hg/strip-backup/
que vous pouvez hg unbundle
à nouveau si désiré.
Le clonage de votre dépôt local doit être rapide. Je suppose que "plusieurs minutes" se réfèrent à un dépôt à distance?
Vous pouvez utiliser hg clone <local repo> <new repo> -r <revision>
pour ne cloner que jusqu'à une certaine révision.
Pour supprimer un ensemble de modifications déjà validé et poussé, utilisez:
hg backout -r (changeet number)
Pour supprimer un ensemble de modifications qui a été validé mais non poussé, utilisez:
hg strip -r (numéro de modification)
Pour les versions antérieures à Mercurial 2.8, le Strip faisait partie de MqExtension.
Si vous devez activer les anciennes extensions MQ, vous pouvez le faire en ajoutant ceci:
[extensions]
hgext.mq =
dans votre fichier ~/.hgrc (ou Mercurial.ini).
Les informations de Strip étaient auparavant ici mais maintenant elles peuvent être trouvées ici .