Was sind Ihre Best Practices und Tipps für die Verwendung von git als Schnittstelle zu einem CVS-Repository?Best Practices für die Verwendung von Git mit CVS
Antwort
Ich schrieb eine Antwort auf eine ähnliche Frage here.
Dies funktioniert überraschend gut, wenn Sie gezwungen sind, Änderungen in ein zentrales CVS-Repository zu verschieben.
Ich habe nur mit Git-CVS-Interaktionen gearbeitet, um Git für einen Freund zu testen, aber es war sehr einfach.
- Sie müssen eine aktuelle Kopie von
cvsps
installieren.Git cvsimport
verwendet dies, um auf CVS-Verlauf zuzugreifen. Wir fanden, dass, für ein großes Projekt, inital Set-up viel schneller war durch eine vollständige Kopie des CVS-Repo auf dem Computer nehmen, und die
git cvsimport
vor Ort zu tun:$ rsync rsync://yourprojecthost.com/cvsroot/yourproject/* $ mkdir myproject.git $ cd myproject.git $ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject
Beachten Sie, dass das -x nach -p sehr wichtig ist. Dies übergibt -x an cvsps. Weitere Informationen finden Sie unter cvsps man page.
Ich denke, es gibt eine fehlerhafte/in Schritt 3. –
@PeterBurns: Das ist ... Es sollte sein 'git cvsimport -p -x -v-d: local:/Pfad/zu/cvsroot yourproject' – Archenoth
Leicht Meta-Antwort. Wenn Sie gezwungen sind, git 'guerilla style' zu verwenden, d. H. Ihre Firma blockiert die Verwendung von cvs für die Versionskontrolle und Sie verwenden git auf Ihrer Workstation, um das Leben einfacher zu machen, könnten Sie in Erwägung ziehen, so etwas zu tun;
CVS=realCvsPath
# commit to the git first
if ($ARGV[0] && $ARGV[0] eq "commit")
{
system 'git commit -a';
}
# execute the appropriate cvs program
# ===================================
exec "$CVS", @ARGV
Diese Datei 'cvs' aufrufen und den Pfad vor dem eigentlichen CVS-Befehl einfügen. Ansonsten können Sie git verpflichtet älter als die cvs diejenigen, die nicht so nützlich ist ...
ich die Details meiner schrieb auf eigene workflow for remote CVS, local Git
Sie" don 't cvsimport' aus nicht näher spezifizierten Gründen (es gibt auch andere Tools, um dies zu tun), so dass Sie alle vorherigen Revisionsinformationen wegwerfen? Das ist eine schreckliche Lösung. –
Was ist so schlimm daran? Wenn ich meine Änderungen zurück in CVS verschiebe, wird kein Revisionshistory "rausgeworfen". Und wenn ich Revisionshistorie sehen möchte, kann ich immer CVS-Befehle verwenden, um das zu tun. –
Welchen Vorteil hast du, wenn du "CVS" zu ".gitignore" hinzufügst, anstatt es zu begehen? Macht es dein git-Repository nicht unvollständig? Siehe http://stackoverflow.com/a/37585092/1122270 und http://stackoverflow.com/q/37585385/1122270 für was ich meine. – cnst
Wenn der Upstream ist zu 100% in CVS (zB OpenBSD , oder viele seiner Unterprojekte wie oder ports-readmes), und besonders, wenn es so rostig ist wie der OpenBSD CVS-Baum (z. B. gelegentlich sogar neu schreiben), finde ich es sehr nützlich, einfach die zugrunde liegenden CVS/{Entries,Repository,Root}
Dateien direkt in meine git
zu committen Repository.
Dies macht es sehr einfach, nicht mehr unabhängigen Arbeitsbereiche haben müssen, macht es möglich, mit git
auf jeder Maschine zur Kasse, und dann cvs up
an Ort und Stelle oder cvs diff
korrektes CVS-Patches für den Versand an die git-weniger-Maintainer erzeugen stromaufwärts.
- 1. Best Practices für die Verwendung von Git in Website-Implementierungen
- 2. Best Practices mit Git mit Visual Studio?
- 3. Best Practices für die Verwendung von Partials in Rails
- 4. Best Practices für die Verwendung von eckigen modalen Dialogen
- 5. Best Practices für die Verwendung von PHP Magic Konstanten
- 6. Best Practices für die Verwendung von Memcached in Rails?
- 7. AngularJS Best Practices für die Verwendung von $ rootscope?
- 8. Best Practices für die Verwendung von @ in C#
- 9. Best Practices für die Dateiverwaltung
- 10. Best Practices für Sandbox-Websites?
- 11. Best Practices für die Verbindungszeichenfolge
- 12. Best Practices für die Datenbankimplementierung
- 13. Best Practices bei der Verwendung von window.open()
- 14. Best Practices für die Konfiguration von Konfigurationsdateien
- 15. Best Practices für die Handhabung von Warnungen
- 16. Best Practices für PHP?
- 17. Best Practices für Transaktionen
- 18. Best Practices für Sharepoint
- 19. Best Practices für Datenbanken
- 20. Best Practices für Sitzungen
- 21. Best Practices für asynchrone Webanfragen
- 22. Best Practices für Datenbankanwendungen
- 23. Best Practices für Xcode + Git für Multi-Entwickler-Projekte
- 24. Best Practices für Facebook-Entwickler
- 25. Best Practices für die MySQL-Verschlüsselung?
- 26. Best Practices für die Versionskontrolle von Cocoa-Projekten
- 27. Best Practices für die Datenbereitstellung - PHPUnit
- 28. Best Practices für die Eingabeüberprüfung in ASP.NET?
- 29. Best Practices, die Entity Framework mit WPF Databinding für die Verwendung von
- 30. Best Practices für Git-Repositories in Open-Source-Projekten
Ich wäre versucht, die gleiche Frage für SourceSafe zu stellen, aber ich möchte wirklich nicht die (totale Ziel-) Verspottung austragen. –