2009-08-03 6 views
-2

Ich suche nach einer Möglichkeit, zwei Revisionshistorien für eine einzelne Datei zu verbinden.Zwei Versionen des Verlaufs in CVS (oder RCS) verbinden?

Eines unserer Projekte wurde über RCS verfolgt. Jetzt lebt dieses Projekt in CVS. Es wurde zunächst als neues Projekt begangen. Daher zeigt der CVS-Verlauf nicht die älteren Revisionen, die über RCS verfolgt wurden.

Angenommen, die Datei foo.c wurde 10 Mal in RCS und dann 2 Mal in CVS überarbeitet. RCS hat die Versionen 1.1 bis 1.10 und CVS hat die Versionen 1.1, 1.2 und 1.3. RCS Version 1.10 und CVS Version 1.1 sind identisch.

Ich versuche, eine kombinierte Geschichte zu erstellen, so dass foo.c 12 Versionen zeigt, 1.1 bis 1.12. Da CVS Revisionen im selben Dateiformat wie RCS speichert, sollte es einfach sein, mit der vorhandenen RCS-Datei zu beginnen und dann die neuen Änderungen mit dem Befehl "ci" einzuchecken (die Zeitstempel, die Benutzer-IDs und die Commit-Meldungen werden beibehalten). . Alle CVS-Tags müssten ebenfalls erhalten bleiben. Diese neue RCS-Datei hätte dann die vollständige Historie, die dann zum CVS-Repository hinzugefügt werden könnte und die alte Version ersetzen würde.

Angenommen, in dieser Codebasis gibt es keine Verzweigungen. Nur geradlinige Entwicklung.

Gibt es ein solches Dienstprogramm bereits?

+1

Während Sie auf Antworten warten, Check-out: dieser Abschnitt aus dem CVS-Trainingshandbuch http://rpmfind.net/tools/CVS/ training/cvstrain-9.1.html – Pete

Antwort

1

Ich habe gerade eine Python-Bibliothek geschrieben, EditRCS (PyPi), um RCS-Dateien zu manipulieren. Das Beispielskript rcs_join verbindet die erste Revision einer RCS-Datei mit dem Kopf einer anderen und aktualisiert die Zweigstellen- und Tag-Revisionen.

Hoffentlich tut, was Sie wollen (! Obwohl es wahrscheinlich zu spät ist)

2

Wenn es sich um eine einzelne Datei handelt und Sie nicht eine große Anzahl von Revisionen übertragen müssen, können Sie immer eine Revision aus dem alten Versionsverwaltungssystem auschecken und in das neue Versionsverwaltungssystem übernehmen (die meisten Versionsverwaltungsmetadaten können dies) koexistieren im selben Verzeichnis) ... diese Methode funktioniert natürlich, egal was das Quell- und Ziel-Versionssystem ist und das habe ich persönlich gemacht, als ich ein ähnliches Problem hatte wie Ihres.

Oder Sie könnten versuchen, die Tailor-Tool, das von/zu vielen Versioning-Systemen konvertieren kann, obwohl ich nicht wirklich weiß, ob es auch zwei verschiedene Geschichten in einem einzigen "verschmelzen" können wie Sie müssen.

Verwandte Themen