Mercurial: einen Kopf enthaupten
Es ist ein commit, die einfach nicht arbeiten, also will ich es aufgeben, ohne Sie zu löschen aus der Geschichte.
Habe ich aktualisiert von einer früheren revision und engagiert und schaffen so einen neuen Kopf.
Ich habe keine äste, ich will keine äste, ich will nur gehen Sie einfach auf mit dem neuen Chef genau so, wie es ist, nichts ausgefallenes, kein verschmelzen, keine Sorge, gehen Sie einfach auf das vergessen der vorherigen.
Ich kann nicht scheinen, um herauszufinden, wie zu tun, und ich fange an zu glauben, es kann nicht getan werden. Allen ist find ich die Sachen über äste oder Sachen zu mischen.
InformationsquelleAutor der Frage o0'. | 2010-09-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktualisieren Sie Ihr repository auf den Kopf mit der revision, die Sie wollen, zu vergessen, dann verwenden Sie die
--close-branch
optionhg commit
um zu markieren, dass (anonyme) Filiale geschlossen. Aktualisieren Sie dann auf den Leiter der Filiale, dass Sie tun wollen, und arbeiten Sie weiter.Kann man noch den Zweig geschlossen, wenn Sie die
-c
optionhg heads
aber es wird nicht standardmäßig angezeigt werden, undhg merge
wissen, nicht versuchen, zu verschmelzen mit dem geschlossenen Kopf.Müssen Sie
hg push --force
das erste mal, wenn Sie drücken dieser geschlossenen Kopf in ein anderes repository, da Sie tatsächlich schaffen zusätzliche Köpfe in das remote-repository, wenn Sie drücken Sie. So ist Mercurial, das ist okay mit--force
. Menschen, die ziehen die geschlossenen Kopf nicht belästigt werden, indem Sie alle Warnungen.InformationsquelleAutor der Antwort Niall C.
Ich kenne dich nicht wollen arbeiten mit branches in dieser Phase, was in Ordnung ist, aber das ist genau das, was Sie getan haben. Wenn Sie ging zurück zu einer früheren version und verpflichtet, etwas, das arbeitete Sie erstellt ein Zweig - ein unbenannter ast, aber ein ast alle gleich.
Gibt es kein problem mit nur die Durchführung, so wie du bist und sich keine sorgen über mehrere Köpfe, aber wenn Sie wollen, um ordentlich Dinge, so dass Sie nicht versehentlich wählen Sie die falschen Kopf dann können Sie töten die alte Filiale.
Gibt es einen guten Abschnitt in der Mercurial-Dokumentation, führt Sie durch eine Reihe von Optionen, um Beschneiden Tote Äste.
Ich denke, die beste option für Sie ist, markieren Sie die alte Filiale, die als "geschlossen". Wenn Sie Ihren alten Kopf revision "123" und dann:
InformationsquelleAutor der Antwort Nick Pierpoint
Zunächst alle, Typ:
Vorstellen, Sie haben drei Köpfe aufgeführt:
Lassen Sie uns sagen, Sie wollen, dass der Letzte Leiter aktive (223), und schließen Sie den rest.
Würden Sie dann gehen Sie wie folgt vor:
Schließen Kopf #59
Schließen Kopf #123
Die änderungen
Vergessen Sie nicht, den Schalter nach rechts Kopf am Ende
Ist und du bist fertig.
InformationsquelleAutor der Antwort Artur Barseghyan
Den Sie verwenden möchten
hg backout
. Dies entfernt die änderungen, die die Differenzmenge von jedem Kind changeset.Check this out für eine gute Erklärung.
Mercurial Backout
InformationsquelleAutor der Antwort msarchet
Können Sie Klonen Sie Ihre beschädigte repo zu einer neuen ohne Klonen, unerwünschte Kopf. Dann entfernen Sie die alten Repositorys verschieben, den neu erstellten Klon der ursprünglichen Platz und weiter damit arbeiten. Dies wird einige Zeit dauern, aber Sie erhalten ein perfekt sauberes repository ohne ein Zeichen, dass unerwünschte revision.
InformationsquelleAutor der Antwort kjam
Sowohl Niall und Nick Antworten sind direkt auf. Weil ich finde mich erstellen viel baumelnden Köpfen, landete ich Schreibe einen alias zu schließen Köpfe leichter. Durch das hinzufügen dieser zu Ihrer
.hgrc
:(wenn Sie bereits ein
[alias]
Abschnitt, die Sie anfügen können, um es statt)Können Sie nun schließen, den Kopf in einem single-Befehl (und die zimmerreserviereung, ohne das update zu einem anderen changeset manuell) wie folgt:
Hinweis: die alias nutzt die Tatsache, dass Mercurial Aliase shell-Befehle. Dies bedeutet, dass dieses wird wahrscheinlich nur funktionieren, auf UNIX, nicht auf Windows.
InformationsquelleAutor der Antwort jjst
Habe ich diese Frage viele Male, wenn ich will, zu enthaupten, Kopf erstellt wurde, die Fehler. Ich will immer zu sehen, verschwindet es vom Antlitz der Erde.
Auf Ihre lokale Kopie, Holen Sie sich die neuesten und dann:
Finden, der Beginn einer Leiter, die Sie entfernen will (wo ein neuer Hals beginnt zu ast, aus), bekommen die Revisionsnummer
Streifen.
Quelle: TipsAndTricks.
Quelle: PruningDeadBranches#Using_strip.
Ihre repo sollte nun den Kopf abgestreift. Der Letzte Schritt ist wichtig, da Strippen nicht erstellen, werden änderungen, die Sie drücken können, um Ihr zentrales repository. Ohne den letzten Schritt, Sie haben nur gestrippt den Kopf lokal.
InformationsquelleAutor der Antwort sonjz