Migrieren von project aus RCS zu git?
Ich habe eine Der 20-jährige Projekt, dass ich möchte, um die Migration von RCS-git, ohne dabei die Geschichte. Alle web-Seiten, die suggerieren, dass der Eine Wahre Weg ist durch CVS. Aber nach einer Stunde Googeln und versuchen, verschiedene Scripte, ich habe noch etwas zu finden, dass erfolgreich wandelt meine RCS Projektbaum im CVS. Ich hoffe, dass die guten Leute bei Stackoverflow wird wissen, was tatsächlich funktioniert, im Gegensatz zu dem, was behauptet, um zu arbeiten und nicht.
(Ich suchte Stackoverflow unter Verwendung der nativen, ALSO der Suche und der Google-Suche, aber wenn es eine hilfreiche Antwort in der Datenbank, habe ich es verpasst.)
UPDATE: Die rcs-fast-export
tool auf http://git.oblomov.eu/rcs-fast-export repariert wurde am 14 April 2009, und diese version scheint für mich arbeiten. Dieses tool konvertiert gerade an git ist, die keine dazwischen CVS. Vielen Dank Giuseppe und Jakub!!!
Dinge, die nicht funktioniert hat, dass ich mich noch erinnern:
-
Den
rcs-to-cvs
Skript, dass die Schiffe in dercontrib
Verzeichnis des CVS-Quellen -
Den
rcs-fast-export
tool auf http://git.oblomov.eu/rcs-fast-export in Versionen vor 13 April 2010 -
Den
rcs2cvs
Skript gefunden in einem Dokument namens "CVS-RCS - HOW-TO-Dokument für Linux"
- Wenn Sie gefunden haben, viele Wege, die nicht funktionieren, und Sie Fragen nach Möglichkeiten, das zu tun, ich denke, es wäre klug, Liste der Arten, die nicht arbeiten, damit niemand verschwendet mehr Zeit 🙂
- Als seitliche Anmerkung, manche Leute sagen, dass der beste Weg aus dem CVS (wenn man Sie einmal) git ist via subversion. stackoverflow.com/questions/881158/...
- Warum genau haben Sie zu halten die Geschichte?
- Warum jemand, halten Geschichte? Ich bin ein Wissenschaftler und Ingenieur, und ich studiere software. Ein Artefakt mit 20 Jahren lohnt sich der Geschichte stellt unersetzlichen Daten!
- Nach der Lektüre dieses post, ich war in der Lage, zu konvertieren, ein RCS-repository (mit einer Datei) zu git. Für Neulinge, die folgenden Unix-Befehle könnte Ihnen helfen, begonnen zu erhalten. Stellen Sie sicher, dass ruby und git installiert sind. Gehen Sie zu dem Verzeichnis mit Ihrer Komma-v-Datei (heißt so etwas wie file.txt v). Type "git --bare init" so erstellen Sie eine bare-git-repository. Geben Sie "ruby your/path/to/rcs-schnell-export.rb | git fast-import".
- Wenn ich konvertiert haben, RCS-repositories, CVS, die ich gerade erstellt eine CVS-repository und kopiert die RCS
*,v
Dateien in es. Ein CVS-repository ist eigentlich ein Verzeichnisbaum mit einer Menge von RCS-Stil*,v
Dateien in es. DieCVSROOT
Verzeichnis ist das Besondere, sondern dass die erstellt wird, wenn das CVS-repository angelegt wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen InterfacesFrontendsAndTools Seite auf Git-Wiki, unter "Extras", "Wechselwirkungen mit anderen Revision Control Systems", "Andere". Dort würden Sie finden, eine Beschreibung und einen link zu rcs-schnell-export (gitweb) Ruby-Skript von Giuseppe "Oblomow" Bilotta.
(Web-Suche finden würde, auch Ohloh-Seite und die Ankündigung für das erwähnte Projekt).
git fast-import
git fast-import
.OK, nach ein wenig basteln, ich fand, es war einfach zu konvertieren RCS CVS. Die Dateien sind im gleichen format, also ist es einfach eine Frage des Verschiebens der Dateien in eine bestehende CVS-root. Dies setzt Voraus, Sie haben Zugang zu den RCS-Dateien.
Als eine Allgemeine Regel, die Sie sollten vorsichtig sein, als zu dem, was von Skripts, die Sie ausführen. Für RCS -> GIT kann es in Ihrem besten Interesse zu Folgen, das RCS->CVS->GIT Methodik.
Warf einen kurzen Blick auf rcs-schnell-export.rb als der 2011-01-12 und rannte über diesen Teil des Codes. Das ist beängstigend, am besten.
Gerade hier gefunden, die funktionierte gut für mich:
http://cynic.cc/blog/posts/migrate-from-rcs-to-git/
Nur beachten, dass die "cvs-source-dir" auf dieser Seite muss ein absoluter Pfad.
Ich hatte auch dieses problem und schaffte es beim Umgang mit cvs2svn, parsecvs und so weiter.
parsecvs hab den nächsten aber Keith scheint es zurückgelassen und jetzt zufällig Gabeln poppen. Das problem, das ich geschlagen war, es würde Parsen des RCS-Dateien Prima, aber das Letzte, was er Tat, war
git rm
die Datei, so hätte ich dreck um mitgit reset
rückgängig machen der Löschung.Dann entdeckte ich den mercurial der
convert
:https://www.mercurial-scm.org/wiki/ConvertExtension
Problem gelöst!
Ich versucht, inkrementell hinzufügen, ein paar Sachen von separate RCS Bäume, scheint es geklappt zu haben.