Ich beginne meine berufliche Karriere in der Programmierung und braucht Hilfe! Was ist der einfachste Weg, um von CVS nach Git zu migrieren?Migration von CVS zu GIT - einfachste Weg
Antwort
I cvsimport erfolgreich viele Male verwendet habe.
Ich habe festgestellt, dass es nicht funktioniert (unter Windows) von der Git BAsh, aber funktioniert gut von Cygwin.
Ich verwende die folgenden Optionen (offensichtlich Benutzernamen, Server ersetzen und Dateispeicherorte):
export CVS_RSH=ssh
git cvsimport -v -d [email protected]:/path-to-cvsroot -C /cygdrive/c/git-repo -z 300 -R -p -q,-b,HEAD MYCVSPROJ
Sie in der Dokumentation zu git-cvsimport und cvsps schauen, um zu sehen, was diese Optionen tun.
Diese Option kann auch inkrementell ausgeführt werden. Wenn also einige Benutzer CVS weiterhin verwenden, können Sie den Importvorgang trotzdem starten und später erneut importieren.
Die Importe sind in den Ursprungszweig (nicht mit einer Fernbedienung zu verwechseln).
Die Commits haben den Benutzernamen von CVS als user.name und user.email. Ein anderes Problem ist, dass die Zeiten alle in GMT sind. Dies kann mit dem folgenden behoben werden:
git filter-branch -f --env-filter 'export GIT_AUTHOR_EMAIL=${GIT_AUTHOR_NAME}@mycompany.com; export GIT_COMMITTER_EMAIL=${GIT_COMMITTER_NAME}@mycompany.com; export GIT_COMMITTER_DATE=$(echo ${GIT_COMMITTER_DATE} | perl -pe "s/ \+0000//"); export GIT_AUTHOR_DATE=$(echo ${GIT_AUTHOR_DATE} | perl -pe "s/ \+0000//");' --tag-name-filter cat -- --all
Ein weiteres Problem ist, dass alle Dateien ausführbar sein wird, etwas, das ist wahrscheinlich nicht wollte. Um dies zu beheben, verwenden Sie diese Version von BFG Repo Cleaner, die alle Dateien nicht ausführbar macht.
Weitere Informationen finden Sie in der Dokumentation aller Tools/Befehle.
Die einfachste Möglichkeit besteht darin, den aktuellen Status Ihres Projekts zu übernehmen und in ein neues Git-Repository zu übernehmen. Sie werden die gesamte Geschichte des Projekts verlieren, aber das ist der einfachste Weg und darum haben Sie gefragt.
Wenn Sie das anspruchsvollste (am besten) Art und Weise wissen mögen, dann zuerst die CVS-Repository zu einer CVS-Repository mit cvs2svn
umwandeln und dann das Ergebnis git verwandeln, mit svn2git
(do nicht Verwendung git-svn
für einen einmaligen Umwandlung, es ist nicht das richtige Werkzeug für diesen Zweck). Es gibt viele Tools mit diesem Namen. Wahrscheinlich ist das Beste das KDE-Gerät unter https://github.com/svn-all-fast-export/svn2git. Um das SVN-Repo-Geschichte im Voraus zu analysieren für die richtigen Regeln für svn2git Aufbau, könnten Sie svneverever von hier verwenden: http://blog.hartwork.org/?p=763
Der erste Absatz beantwortet die Frage nicht. Die Frage ist nicht, "wie bekomme ich Code in CVS zu Git gehostet", sondern CVS nach Git migrieren, was offensichtlich bedeutet, dass der Verlauf erhalten bleiben sollte. –
Das ist eine Definitionssache. Manche Leute halten die Geschichte für überflüssig und wären mit dieser Methode einverstanden. Nicht ich, sondern einige. Also dann nimm den zweiten Absatz. – Vampire
- 1. Migration von Git zu SVN
- 2. Der einfachste Weg, "git grep" für mehrere Strings zu machen?
- 3. von git Migration
- 4. einfachste Weg Skript von Python
- 5. Migration von Subversion nach Git
- 6. einfachste Weg parallel replizieren
- 7. Ist git mit cvs schneller als cvs alleine?
- 8. Der einfachste Weg meinen CLASSPATH zu verwalten?
- 9. Der einfachste Weg, atomar zu entketten?
- 10. Der einfachste Weg ein Bild zu zeichnen?
- 11. Überprüfen von Git-Repos nach der Migration
- 12. Der einfachste Weg, Autoprefixer zu verwenden?
- 13. SVN zu GIT-Migration fehlgeschlagen mit svn2git
- 14. Der einfachste Weg, um Zahlen zu überprüfen
- 15. Der einfachste Weg, um Einheit zu lernen
- 16. Der einfachste Weg, Pyg4 zu unterbrechen?
- 17. Git zu TFS Source Control Migration
- 18. Einfachste Möglichkeit, ein Datenmodell nach Rails-Migration zu portieren
- 19. Migration von Git-Server nach Github
- 20. Migration von Svn zu Git 2.9.2 auf Windows
- 21. Migration von SVN zu Git mit großem Verlauf
- 22. Können wir git-cvs unter Windows verwenden?
- 23. der einfachste Weg, Matrix zu einem Zeilenvektor zu konvertieren
- 24. einfachste Weg, Standardargument in C
- 25. Was ist der einfachste Weg, um ein leeres * nacktes * Git-Repository zu klonen?
- 26. Best Practices für die Verwendung von Git mit CVS
- 27. Webinterface zu CVS-Repository
- 28. Der einfachste Weg, eine RethinkDB-Datenbank zu kopieren/zu duplizieren?
- 29. Was ist der einfachste Weg, alle außer einer Änderung von einer Verzweigung in Git zusammenzuführen?
- 30. Argumente zu überzeugen, von CVS auf SVN zu wechseln
möglich Duplikat mit http://StackOverflow.com/Questions/20869710/Migrate-from-CVS-to-Git-ohne-Verlustgeschichte –
Kontext: haben Sie bereits ein riesiges Projekt in CVS? – Makoto