Soll ich alten Code in mein Repository einfügen?


8

Ich habe ein SVN-Repository einer PHP-Site und der letzte Programmierer hat die Quellcodeverwaltung nicht richtig verwendet. Daher befindet sich im Repo nur Code, seit ich hier arbeite.

Ich habe ein paar alte Kopien der vollständigen Codebasis in Dateien als "Backups" gespeichert, aber sie sind nicht in der Quellcodeverwaltung. Ich weiß nicht, warum die meisten Kopien gespeichert wurden, und ich habe auch keine vernünftige Möglichkeit, sie mit einer Versionsnummer zu versehen. Ich tun die Daten haben die Sicherungen vorgenommen wurden, alle Sicherungen richtige Dateisystem - Zeitstempel haben.

Aufgrund von Upgrades der beteiligten Frameworks und Datenbanktreiber ist der alte Code nicht mehr vorhanden. Es funktioniert nicht mehr mit der aktuellen Serverkonfiguration. Die vorherigen Programmierer hatten jedoch eine einzigartige Logik, so dass ich es hasse, ganz ohne alte Kopien zu sein, um zu verweisen, was um alles in der Welt sie taten.

Soll ich dieses Zeug in der Versionskontrolle behalten? Wie? Den alten Code in separaten Tags / Zweigen abmauern?


Haben Sie jetzt eine vollständige Kopie der aktuellen Codebasis in der Quellcodeverwaltung?
Joshua Drake

@JoshuaDrake Ja, das aktuelle Repo ist eine vollständige Arbeitskopie von allem, was ich brauche. Es gibt nichts, was mir "fehlt", außer historischen Dingen, aber ich habe wesentliche Änderungen an vielen Teilen des Programms vorgenommen.
Ben Brocka

Antworten:


10

Wenn Sie für jede dieser Arbeitsversionen angemessene Zeitstempel haben, können Sie diese möglicherweise einzeln einchecken, bis Sie zur neuesten Version der Codebasis, Ihren neuesten Änderungen, gelangen.

Das Problem mit dem Tag-Ansatz ist, wie alle anderen vermuten, dass Sie den Änderungssatzverlauf für jede Datei verlieren und dadurch Vergleiche zwischen älteren Versionen des Codes erschweren.


Ich fragte mich, ob ich sie in die Revisionsgeschichte aufnehmen könnte. Die geänderten Daten sehen auf den alten Kopien genau aus.
Ben Brocka

2
@BenBrocka Natürlich können Sie ja, Sie beginnen einfach damit, die älteste Kopie der Codebasis in einen neuen Zweig einzuchecken. Löschen Sie alles in Ihrer Arbeitskopie mit Ausnahme der Subversion-Verzeichnisse, kopieren Sie die nächstälteste Kopie in Ihren Arbeitsordner. Überprüfen Sie, ob Änderungen vorgenommen wurden. Alle neuen Dateien, Aktualisierungen und Löschvorgänge werden angezeigt. Einchecken. Schaum. Spülen. Wiederholen, bis Sie elegantes, glänzendes Haar haben.
maple_shaft

2
HINWEIS: Wenn Sie dies tun, verlieren Sie die historischen Zeitstempel der vorherigen Versionen, aber diese Daten sind neben der historischen Neugier wahrscheinlich sowieso nicht sehr nützlich. Der sequentielle Änderungssatzverlauf für jede Datei ist viel wertvoller.
maple_shaft

1
Ich kann die historischen Zeitstempel sowieso nicht behalten, oder? Sie werden nur als die ältesten Revisionen angezeigt?
Ben Brocka

2
Sicher können Sie die Zeitstempel behalten. Stellen Sie bei einem eigenständigen System ( z. B. einem Laptop oder einem PC-Desktop) Ihre Uhr einfach auf den Zeitstempel der Sicherung ein, bevor Sie bei SVN einchecken.
Ross Patterson

8

Ich würde ein separates Verzeichnis verwenden, so etwas wie "Vermächtnis", um alle notwendigen Dinge an einem Ort zu haben.


+1 Dokumentieren Sie, wie sich die verschiedenen Versionen verhalten, speichern Sie und fahren Sie mit der Arbeitskopie fort.
JustinDoesWork

2

Ich persönlich würde. Sie müssen sicherstellen, dass Sie sie alle getrennt halten, wahrscheinlich wie Sie sagten, und sie mit Tags abmauern. Möglicherweise können Sie das Datum verwenden, an dem die Datei zuletzt bearbeitet wurde, um eine allgemeine Reihenfolge zu ermitteln.

Es wäre ungefähr gut, es in SVN zu setzen, um die Geschichte zu zeigen. Es hört sich so an, als würden Sie es brauchen, wenn sie einige seltsame Ausschnitte haben, wäre es nützlich, den Verlauf der Datei zu sehen. Ganz zu schweigen davon, dass Sie die gesamte (bekannte) Geschichte des Projekts an einem Ort haben. Ich kann mir keinen Grund vorstellen, es nicht zu tun, obwohl mir etwas Wichtiges fehlen könnte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.