Wie man zum vorherigen Commit in CVS zurückkehrt
Legacy Gründen, bin ich durch die Verwendung von CVS für ein Projekt. Vor kurzem hatte ich mich verpflichtet, einige änderungen, die brach unseren code und ich musste wiederherstellen. Was CVS ist analog der git revert -r <old_revision>
?
Blick in die Vergangenheit mit Fragen wie Zurücksetzen große VeränderungCVS commits, die nicht der Gruppe der Dateien, die geändert wurden. Ist der einzige Weg, um wieder durch die Verwendung von Daten?
Auch, was ist der beste Weg, um Vergangenheit verpasst? CVS-log-Ausgänge zu viel info, von denen die meisten unnötig ist. Ich möchte sehen, commit-Nachrichten und Dateien geändert.
InformationsquelleAutor der Frage Fiona T | 2012-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
CVS-Dokumentation gefunden werden kann hieraber von dieser Website es erzählt, wie das wiederherstellen einer einzelnen Datei:
Diese nicht mit vielen Dateien in einem rekursiven Mode, aber hoffentlich hilft.
InformationsquelleAutor der Antwort Dave M
Zurück, eine revision einer einzelnen Datei, verwenden Sie
cvs admin -o
.Finden Sie in der CVS-Dokumentation (
info cvs
wenn Sie auf einem Unix-artigen system) für details, oder sehen dieser link.Zitat aus dem Handbuch:
Gibt es eine Reihe von Möglichkeiten zur Angabe einer revision oder eines Bereichs von Revisionen zu löschen.
Als es sagt, das kann sehr gefährlich sein; es löscht Informationen aus dem repository, die in der Regel genau das, was jeder revision control system versucht das zu verhindern.
Wenn Sie nicht brauchen, um die Geschichte zu ändern, wie diese, nehmen Sie einfach eine Kopie der älteren version, und überprüfen Sie es auf der Oberseite der schlechten revision, wie Dave M ' s Antwort vorschlägt.
Und du hast Recht, CVS Betonung auf einzelne Dateien; moderne Systeme tendieren dazu, den Zustand des gesamten repository.
So weit, all dies können Sie nur eine Datei zu einem Zeitpunkt.
Aber man könnte prüfen, ein ganzes Modul zu einem angegebenen Datum in einem separaten Verzeichnis (
cvs checkout -D date
), dann kopieren Sie die Dateien über Ihre aktuelle Kopie von dem Modul, und überprüfen Sie alles. Wenn Sie dies tun, werden Sie sicher, dass Sie ein "cvs diff", so dass Sie genau wissen, welche änderungen Sie machen.Ich weiß nicht ein guter Weg, um mehr prägnant log-Informationen.
cvs log
ohne Argumente gibt Ihnen ein Protokoll für jede Datei, nicht in chronologischer Reihenfolge.cvs log filename
gibt Ihnen ein Protokoll für eine bestimmte Datei, aber nicht in Beziehung zu anderen Dateien, die geändert werden kann, zur gleichen Zeit. Ich persönlich könnte überlegen, schreiben ein Perl-Skript sammelt die Informationen, die gedrucktcvs log
und ordnet es für die Anzeige, aber das ist wahrscheinlich mehr Arbeit, als Sie interessiert sind zu tun.Gibt es tools zum importieren von CVS repositories in etwas moderner.
InformationsquelleAutor der Antwort Keith Thompson
Hier sind die Befehle.
1) falsche commit passieren
2) überprüfen Sie die neueste version.
können sagen, 1.25 ist die neueste version durch falsche Begehen, so wollen wir wieder auf die ältere version 1.24.
3), So können gehen Sie vor wie unten Weg.
4), Nur um sicherzustellen, können diff, 1,26 und 1.24 sind die gleichen.
Wenn alle oben genannten Schritte richtig sind, dann diff zeigt keinen Unterschied.
InformationsquelleAutor der Antwort Jeegar Patel
Sowie das zurücksetzen von Datum, das Sie zurückgreifen konnte, die durch tag, wenn die Menge der Dateien, die Sie wollen zurück zu gehen, zu versehen ist.
Hatte ich das, was ich denke, ist eine ähnliche situation und ich habe die folgenden beeinflusst den gesamten Ordner, sondern als Datei-by-Datei:
Dieser Ansatz muss änderung, wenn alle Dateien Hinzugefügt/entfernt, zwischen der alten version und der aktuellen version.
Die CVS Geschichte wird zeigen die Umkehrung.
InformationsquelleAutor der Antwort sparklewhiskers
cvs update -j 1.6 j 1.5 Filename.java
InformationsquelleAutor der Antwort Vijay Shetty