Ok, ich hatte ein kleines Google und konnte keine Lösung finden, da ich über dieselbe Nachricht gestolpert bin, aber auf unterschiedliche Weise, wie die Leute sie bekommen haben. Ich bin neu bei Mecurial und möchte sichergehen, dass ich dies richtig mache.
Ich erhalte die Fehlermeldung wie oben. Ich habe eine Dev-Site und eine Live-Site und versuche, den Code in die Codebase zu verschieben.
Gestern habe ich aus Versehen hg add
gemacht, der alle Medien hinzugefügt hat, die ich nicht machen wollte. Ich habe nachher zurückgezogen, um alle Mediendateien aus der Codebase zu entfernen, dann festzuschreiben und die Änderungen zu übernehmen. Heute habe ich also Änderungen an der CSS-Datei und einigen Vorlagen vorgenommen. Ich bin gegangen, um meine Änderungen festzuschreiben und zu drücken, aber wenn ich hg Push
starte, erhalte ich den obigen Fehler.
Ich habe hg log ausgeführt und es gibt nur 6 Commits, da es sich um ein sauberes/neues Zweig-/Projekt handelt. Jede Hilfe wäre sehr dankbar und ich entschuldige mich, wenn ich nichts richtig erklärt habe!
Dies ist keine Fehlermeldung. Es ist eine völlig normale Situation. Diese Botschaft besagt: "Hey, andere Leute haben neue Arbeit in dieses Repository gesteckt, während Sie Ihre Arbeit erledigten. Sie sollten wahrscheinlich ihre in Ihre integrieren, damit sie Ihre nicht in ihre integrieren muss?"
Also zuerst ein:
hg pull
und dann ein:
hg merge
Übrigens hat die revert
, die Sie tatsächlich gemacht haben, wenn Sie den hg revert
-Befehl tatsächlich verwendet haben, diese Dateien nicht aus dem Verlauf entfernt, so dass Ihr Verlauf wahrscheinlich ziemlich groß ist.
Lesen Sie die ersten Kapitel des Mercurial-Buches , in dem diese Situationen sehr gut behandelt werden.
Wenn Sie Ihre widersprüchlichen Änderungen abbrechen möchten
hg outgoing
Es sollten Zeilen angezeigt werden, die Ihre festgeschriebenen/widersprüchlichen Änderungen enthalten, die nicht übertragen werden. Suchen Sie nach der Änderungssatzversion. Hier 64
searching for changes
changeset: 64:1830948c246e
Dann
hg strip 64
Das hat bei mir funktioniert.
hg Push -f
Versuchen Sie es für weitere Befehle
hg help Push
Auf TortoiseHg können Sie Folgendes tun:
1 => Übertragen Sie Ihre Dateien
2 => Gehen Sie zu Ihrem neuen Zweig, wo Sie Ihren Code verschieben möchten
3 => Führen Sie auf diesem Zweig Zusammenführen mit Entwickeln aus
4 => Drücken Sie Ihren Code ohne Fehler!
Wenn Sie die Workbench zum Übertragen der Änderungen verwenden, können Sie zuerst versuchen, ausgehende Änderungen zu erkennen. Weitere Informationen finden Sie im angehängten Bild
Dies gibt Ihnen Informationen darüber, was Sie pushen werden. Mein Problem war, dass ich ein altes draft
hatte, das noch gepusht werden musste. Ich konnte mit dem Push fortfahren, nachdem ich strip
für den alten Entwurf ausgeführt habe.
Der beste Weg, mit Mercurial zu arbeiten, ist, git init
in seinem Ordner zu erstellen. Und dann mit Git vor Ort arbeiten. Verschmelze in Git und so weiter. Und dann einfach mit Mercurial zurückschieben. Das ist die einfachste Art, mit Mercurial zu arbeiten. Sonst funktioniert Mercurial einfach nicht.