2010-09-07 2 views

Répondre

1

L'extraction ne peut pas effectuer toute une série de révisions, car chaque révision mercurielle existant dans un référentiel doit également contenir tous ses ensembles de modifications ancêtres dans cette révision. Donc, si vous faites:

hg pull ../oldRepo -r 1000 

vous recevez également toutes les révisions des ancêtres de la révision 1000.

En général, mercurial consiste à construire une histoire immuable - si vous regrettez un changeset vous ne le supprimez pas, vous en créez un nouveau qui annule le travail du changeset que vous n'aimez plus. Si vous ne pouvez pas accepter d'avoir l'historique complet dans votre repo, vous devez utiliser quelque chose comme l'extension strip ou convert. Les deux fonctionnent comme annoncé, mais offrent beaucoup d'occasions de se tirer une balle dans le pied. Si vous pouvez le supporter, annulez simplement le changeset onéreux dans un changeset suivant et continuez.

+0

Je veux me tirer une balle dans le pied. Comment puis-je utiliser hg convert pour supprimer plusieurs révisions discrètes? Par exemple, étant donné les révisions de 0 à 1000, je veux supprimer 205, 405 et 934. – Gili

+1

Je pense que vous pourriez utiliser une option --splicemap avec convert pour que les enfants de ces révisions soient les enfants des parents de ces révisions, ce qui ferait ces têtes de révisions. Vous feriez alors un clone local avec -r pour tirer toutes les têtes sauf celles-ci. Je ne l'ai pas essayé parce que ce n'est pas une bonne idée. :) –

Questions connexes