Meist robuste Möglichkeit, ein CVS-Repository mit Eclipse-Projekten nach Git zu konvertieren?

Ich habe eine Situation, in der ich ein älteres CVS-Repository habe, das wir gerne ein für alle Mal auf Git umstellen würden, während wir die vollständige Historie usw. behalten.

Alle Ordner im Stammverzeichnis des Repositorys enthalten Eclipse-Projekte (entweder einfache oder dynamische Webprojekte), einschließlich .classpath und .project. Wir verwenden Team ProjectSets, um die Projekte zu überprüfen, die wir für eine bestimmte Aufgabe benötigen (wobei sich die Projektgruppe in dem Projekt befindet, das das Hauptprojekt enthält, und der Rest Bibliotheksprojekte sind).

Wenn das Team ProjectSet ausgecheckt ist, ist der Arbeitsbereich vollständig gefüllt.

Dieser Ansatz funktioniert seit vielen Jahren ziemlich gut (mit Ausnahme des mit 3.5 gelieferten Projektsatzteils), und wir möchten, wenn möglich, auf ähnliche Weise mit git arbeiten, sind uns aber nicht sicher, wie.

Ich habe etwas mit @ gespiegit cvs import aber es ist fehlgeschlagen - wahrscheinlich, weil wir keine Module verwenden.

Wie würden Sie vorschlagen, dies zu tun, und wie sollten wir mit git zusammenarbeiten, um die aktuelle Nutzung von Projekten für gemeinsam genutzte Bibliotheken zu ermöglichen? Würden wirHABE Maven vorstellen und Maven-Module für unsere Bibliotheksprojekte erstellen? Oder einfach nur Ameisen-Efeu?

EDIT: Ich habe es jetzt geschafft, unser CVS-Repository mit einem geeigneten cvs2svn-Aufruf in Subversion umzuwandeln und festgestellt, dass Eclipse das resultierende Subversion-Repository gut erkennt. Leider nach dem klonenhttp: //github.com/iteman/svn2gi `und versuche bin / svn2git auszuführen Ich bekomme

tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
        from bin/svn2git:35:in `new'
        from bin/svn2git:35

Dies ist mit Ubuntu 10.04.1 LTS Server und ich habe verschiedene Sudo-Dinge mit Ruby und seinen Edelsteinen ausprobiert, ohne vollständig zu verstehen, was ich getan habe, da ich kein Ruby-Programmierer bin, sodass ich die Dinge vielleicht ein bisschen durcheinander gebracht habe. Ich würde mich über einen Rat freuen - wenn es am einfachsten ist, eine andere Linux-Variante für die Konvertierung zu installieren, ist das in Ordnung.

BEARBEITEN

https: //help.ubuntu.com/community/Gi http: //css.dzone.com/articles/subversion-git-mornin

Edit: Mein erster Versuch mit dem Standard-svn2git wurde erfolgreich abgeschlossen (nach einer Weile), und ich erhalte ein nettes Repository, in demgit branch -a berichtet grob

tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
  remotes/XX64_DEPLOYED_CODE
  remotes/Beta1
  remotes/Beta2
  remotes/SV46
  ... lots more

Wir sind daran interessiert, den SV46-Zweig zu überprüfen und damit zu arbeiten (die Tags interessieren uns im Grunde nicht, nur die tatsächlichen Zweige). Ich habe gitosis eingerichtet und dieses Repository auf gitosis verschoben und es auf einen anderen Computer geklont, um herauszufinden, wie das Bit "Arbeit mit SV46" mit Eclipse funktioniert.DA repository kennt nicht alle Zweige:

tra@TRA ~/git/git00 (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

Muss ich das ursprüngliche Ergebnis von svn2git massieren, um die Informationen in das Gitosis-Repository zu übertragen? Muss ich mit einem Argument klonen? Soll ich den Schritt "svn2git" mit der vorgeschlagenen Version wiederholen, anstatt der mit Ubuntu gelieferten?

EDIT: Es stellte sich heraus, dass beim Veröffentlichen des svn2git-generierten Repositorys mit "git push --mirror" Dinge im gitosis-Repository angezeigt wurden. Ich sehe jetzt die folgende innere Gitose (getrimmt):

tra@Sandbox:/srv/gitosis/repositories/git01.git$ git branch -a
* master
  remotes/XX64_DEPLOYED_CODE
  remotes/Basic_Beta1
  remotes/Beta1
  remotes/Beta2
  remotes/SV46
  ... lots more
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git branch
* master
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git tag -l
tra@Sandbox:/srv/gitosis/repositories/git01.git$

Versuche, dieses Repository mit @ zu klongit clone gitosis@sandbox:git01 -b remotes/SV46 odergit clone gitosis@sandbox:git01 -b SV46 Beide teilen mir mit, dass der entfernte Zweig nicht über den Upstream-Ursprung gefunden wird, sondern HEAD.

Bin ich bellen den falschen Baum?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage