Fragen zu mercurial

The_Rave

Mitglied
Hi,

jemand meinte solche Themen wären im Coders Talk besser aufgehoben als im c++ Forum.

Ich habe mir jetzt mal mercurial angesehen und cutehg installiert um eine grafische Oberfläche zu haben. Da gibt es zwei Buttons wo mir der Unterschied nicht so ganz klar ist.

Einmal den Button Rollback hinterlegt mit "undo the most recent action".
Und einmal Backout hinterlegt mit "Undo the effects of a changeset by creating a new changeset ". Kann mir mal einer erklären wo der Unterschied zwischen Rollback und Backout ist?
 
Hi!

Ersteres ist im Prinzip ein gewöhnliches "Rückgängig", das Zweite erstellt eine neue Version - in der die Modifikationen einer vorhergehenden rückgängig gemacht wurden...

Greetz
Enum
 
Ich bin jetzt doch bei TortoiseHG gelandet.

Erstmal hab ich mir eine Testrepo angelegt, mit nur einer Textdatei und darin dann verschiedene Änderungen gemacht und dann comittet. Dann hab ich schon mal herausgefunden daß Änderungen an den Dateien erst nach einem merge durchgeführt wurden. Soweit so gut, dann dachte ich jetzt kann es losgehen.

Ich versuche gerade beim aktuellen Firefox Nighlty 3.5 einige Backouts duchzuführen.

Die Betonung liegt auf versuchen.

Ich hab mit dazu erstmal zum testen ein Changeset ausgesucht, was nur eine Datei ändert und 5 Zeilen hinzufügt.

Das backout selber ändert ja keine Datein und erzeugt einen neuen Head. Um die Änderung, also das Backout in die Datei zu bekommen muss man ja noch mergen oder ein hg update -C dann behält man aber den neuen Head.

Nach dem mergen sollte dann in der Datei die besagten 5 Zeilen Code entfernt sein.
Misstrauisch wie ich bin hab ich das kontrolliert und musste feststellen, das einzige was sich geändert hat war der Datestamp der Datei. Aber die 5 Zeilen Code waren immer noch drin.

Laut meinem Backout changeset sollte alles gemacht worden sein.

Wenn ich in der Tortoise History auf mein merge changeset gehe (das letzte changeset) und dann den Button other parrent klicke steht da nichts anderes außer merge soweit so gut, also kein anderes Parent dort verfügbar.

Nun war das changeset vor meinem Backout changeset aber auch ein Merge changeset. Wenn ich dort auf other parent klicke gibts da wirklich noch einen anderen Parent und ich kann sehen daß dort neben ganz vielen anderen Änderungen auch meine besagten 5 Zeilen hinzugefügt wurden.

Aber mit dem merge changeset oder dem anderen parrent hab ich ja eigentlich gar nichts angestellt. Ich verstehe nicht was mercurial da macht. Hab aber die Vermutung, daß da was mit dem anderen Parrent aus dem merge vor meinem Backout was zusammenhängt. Weiß da jemand was drüber?
 

Neue Beiträge

Zurück