Frage

Ich habe einen 20-jährige Projekt , dass Ich mag würde zu Migration von RCS git, ohne die Geschichte zu verlieren. Alle Web-Seiten lassen vermuten, dass der One True Pfad durch CVS ist. Aber nach einer Stunde googeln und versuchen verschiedene Skripte, habe ich noch etwas zu finden, dass erfolgreich wandelt meinen RCS Projektbaum zu CVS. Ich bin die gut Leute in der Hoffnung, Stackoverflow wird wissen, was tatsächlich funktioniert, im Gegensatz zu dem, was behauptet wird, zu arbeiten, und dies nicht tut.

(Ich suchte sowohl die native Stackoverflow mit SO suchen und einer Google-Suche, aber wenn es in der Datenbank eine hilfreiche Antwort ist, vermisste ich es.)

UPDATE : Das rcs-fast-export Werkzeug an http: //git.oblomov .eu / rcs-fast-Export am 14. April 2009 und diese Version repariert wurde, scheint für mich zu arbeiten. Dieses Tool konvertiert gerade ohne Zwischen CVS git. Dank Giuseppe und Jakub !!!


Dinge, die nicht funktionierten, dass ich erinnere mich noch an:

  • Das rcs-to-cvs Skript, dass Schiffe im contrib Verzeichnis der CVS-Quellen

  • Das rcs-fast-export Werkzeug an http://git.oblomov.eu/rcs-fast -export in Versionen vor 13. April 2010

  • Das rcs2cvs Skript in einem Dokument mit dem Titel "CVS-RCS- HOW-TO-Dokument für Linux"

  • gefunden
War es hilfreich?

Lösung

Siehe InterfacesFrontendsAndTools Seite auf Git-Wiki, in "Extras", „Wechselwirkungen mit anderer Revision Control Systeme“,‚Sonstiges‘. Es würde Sie eine Beschreibung und einen Link zu rcs-fast-Export finden ( gitweb ) Ruby-Skript von Giuseppe "Oblomow" Bilotta.

(Websuche finden würde auch Ohloo Seite und die Ankündigung für genannte Projekt) .

Andere Tipps

In der Regel sollten Sie vorsichtig sein, was Skripte ausgeführt werden. Für RCS -> GIT kann es in Ihrem besten Interesse sein, die RCS-> CVS-> GIT Methodik folgen

.

Nahm einen kurzen Blick auf rcs-fast-export.rb ab 2011-01-12 und über diesen Teil des Codes lief. Das ist beängstigend am besten.

# steal username/email data from other init files that may contain the
# information
def steal_username
    [
            # the user's .hgrc file for a username field
            ['~/.hgrc',   /^\s*username\s*=\s*(["'])?(.*)\1$/,       2],
            # the user's .(g)vimrc for a changelog_username setting
            ['~/.vimrc',  /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],
            ['~/.gvimrc', /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],
            []
    ].each do |fn, rx, idx|
...

OK, nach ein wenig Bastelei, fand ich es war trivial RCS zu CVS zu konvertieren. Die Dateien sind im selben Format, also ist es einfach eine Frage der Dateien in eine bestehende CVS Wurzel zu bewegen. Dies vorausgesetzt, dass Sie Zugriff auf die RCS-Dateien haben.

# Create CVS root dir. You only need to do this once.
mkdir $HOME/cvs/
cd $HOME/cvs/
cvs init

# Import a repository from RCS to CVS
cp -a _projectname_/RCS $HOME/cvs/_projectname_

gefunden Genau dies, das gut für mich gearbeitet:

http://cynic.cc/blog/posts/migrate -von-rcs-to-git /

Es genügt zu bemerken, dass "cvs-source-dir" auf dieser Seite ein absoluter Pfad sein muss.

Ich hatte dieses Problem auch und rang mit cvs2svn, parsecvs und so weiter. parsecvs bekam in der Nähe, aber Keith scheint es hinter sich gelassen zu haben und nun zufällig Gabeln sind Aufspringen . Das Problem, das ich mit ihm auffiel, war es die RCS-Dateien ganz gut analysieren würde, aber das letzte, was er tat, war die Datei git rm, also würde ich mit git reset habe vertrödeln, um die Löschung rückgängig gemacht werden.

Dann entdeckte ich Mercurial convert:    https://www.mercurial-scm.org/wiki/ConvertExtension Problem gelöst!

Ich habe versucht, schrittweise ein paar Sachen aus separaten RCS Bäumen hinzufügen, so scheint es funktioniert zu haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top