Ich kenne und verwende zwei Versionskontrollsysteme: Subversion und Git. Subversion wird ab sofort für persönliche Projekte verwendet, bei denen ich der einzige Entwickler bin, und Git wird für Open-Source-Projekte und Projekte verwendet, bei denen meines Erachtens andere ebenfalls an dem Projekt arbeiten werden. Dies liegt hauptsächlich an den erstaunlichen Möglichkeiten von git zum Forken und Zusammenführen, bei denen jeder an seinem eigenen Zweig arbeiten kann. sehr praktisch.
Jetzt benutze ich Subversion für persönliche Projekte, da ich denke, dass git dort wenig Sinn macht. Es scheint ein bisschen übertrieben zu sein. Es ist in Ordnung für mich, wenn es zentralisiert ist (normalerweise auf meinem Heimserver), wenn ich der einzige Entwickler bin. Ich mache sowieso regelmäßige Backups. Ich brauche nicht die Fähigkeit, einen eigenen Zweig zu gründen, der Hauptzweig ist mein Zweig. Ja, SVN hat eine einfache Unterstützung für Verzweigungen, aber eine viel leistungsfähigere Unterstützung macht meiner Meinung nach keinen Sinn. Verschmelzung kann ein Schmerz sein, oder zumindest aus meiner kleinen Erfahrung.
Gibt es einen guten Grund für mich, git für persönliche Projekte zu verwenden, oder ist es einfach übertrieben?
quelle
undo
als es sich um eine relativ neue Funktion in Anwendungen handelte. Jetzt merkt jeder, dass er es die ganze Zeit gebraucht hat. Sie müssen sich verzweigen, Sie wissen es einfach nicht.Antworten:
Es ist nicht übertrieben. Der Hauptgrund, warum ich angefangen habe, Git und Mercurial über Subversion für persönliche Projekte zu verwenden, ist, dass das Initiieren eines Repositorys so viel einfacher ist.
Willst du ein neues Projekt starten?
BAM! Es ist nicht erforderlich, einen Repository-Server einzurichten oder eine Ordnerstruktur einzuchecken, um das Verzweigen und Markieren in ein Subversion-Repository zu unterstützen.
Das spätere Teilen Ihres Projekts ist nur eine Frage von:
git push
(außer einem Remote-Repository). Versuche das schnell mit Subversion zu machen!quelle
echo 'for dir in projects/*; do cd "$dir"; git push; cd ..; done' > update_all; chmod +x update_all
git init
und bam! Oh ja und danncp ../the-other-project/.gitignore .
vor dem ersten Commit. Bam!Ich würde behaupten, dass die Verwendung von Subversion für lokale persönliche Projekte übertrieben ist, während Git dies definitiv nicht ist. Git nimmt weniger Platz in Anspruch (aufgrund des ineffizienten "Revisions" -Konzepts von SVN im Vergleich zu Gits Objekt-Snapshots), erfordert weniger Setup (im
git init
Vergleich zu einem Dutzendsvnadmin
Befehlen und dem Einrichten von Berechtigungen usw.) und ist einfacher zu sichern (git clone --bare
[odergit push origin
wenn Sie Github verwenden) o.ä.] und Sie sind fertig) und haben bessere Tools für die Verwaltung Ihres Codes (die Verzweigung ist kostenlos und das Zusammenführen ist einfacher und sauberer). Nur weil niemand anderes einen Klon Ihres Repositorys hat, bedeutet dies nicht, dass die Vorteile eines DVCS "übertrieben" sind.Außerdem würde ich sagen, dass die Verzweigungsunterstützung von Git weniger komplex als die von SVN ist und größere Belohnungen bietet.
quelle
svnadmin create
plus einem Befehl zum erstmaligen Auschecken oder Importieren), ohne dass Berechtigungen eingerichtet werden müssen und so weiter. Ich bestreite nicht, dass Git oft ein besseres Tool ist, aber Ungenauigkeiten in Bezug auf Subversion sind nicht hilfreich.Zu denken, dass Sie niemals Ihren eigenen Code verzweigen werden, ist ein wenig kurzsichtig. Ich habe meinen eigenen Code mehrmals verzweigt, besonders als ich mit einem neuen Ansatz experimentierte, von dem ich noch nicht ganz überzeugt war. Sie werden schließlich die Funktion wollen.
Dies kommt von einem langjährigen Subversion-Benutzer. Die Konsolidierung auf ein Tool kann Ihnen das Leben erheblich erleichtern.
quelle
Übermaß ist vorbehalten, wenn durch die "Lösung" ein Kollateralschaden entsteht. Wenn Sie eine Fliege mit einer Waffe töten, bedeutet dies, dass die Kugel Schaden an einem anderen Ort verursacht. Es ist übertrieben. Etwas Stärkeres als das Notwendige zu verwenden, das kein Problem verursacht, ist nicht übertrieben und kann eine gute Sache sein, wenn es Ihnen hilft, Ihren Entwicklungsprozess zu rationalisieren. Dies schadet nicht und ermöglicht es Ihnen, nur einen Satz von Software anstelle von zwei zu aktualisieren. Warum also zwei Systeme statt eines?
quelle
Ich benutze Git für meine Ein-Mann-Projekte und ich liebe es. Ich habe zuvor Subversion verwendet und bisher noch keinen Nachteil bei der Verwendung von Git festgestellt. Es ist mächtiger, aber nicht in einer Weise, die einfache Dinge komplizierter macht. Machen Sie einfache Dinge unnötig kompliziert / teuer / langsam / etc. ist meiner Meinung nach eine notwendige Bedingung, um etwas Overkill zu nennen. Außerdem habe ich auf Github die früheren Ein-Mann-Projekte anderer Leute gegabelt, um eine Funktion hinzuzufügen, die ich wollte, und ihnen dann Pull-Anfragen gesendet. Ich finde es ziemlich cool, wenn jemand, der sich für meine Projekte interessiert, das Gleiche tut.
quelle
Ich habe die Quellcodeverwaltung vor DVCS noch nie für persönliche Projekte verwendet, daher ist es etwas seltsam, sich vorzustellen, dass jemand die gegenteilige Ansicht vertritt. Einige meiner Gründe sind:
quelle
Mir wurde gesagt, dass dies
git-bisect
sehr hilfreich ist, um das genaue Commit zu finden, das ein bestimmtes Verhalten ausgelöst hat, indem Sie je nach Eingabe in Commits vor- und zurücknavigieren.Sie werden das eines Tages für Dinge tun müssen, die Sie einfach nicht herausfinden können, was passiert ist.
BEARBEITEN: Auch die Fähigkeit zum Verzweigen ist sehr wichtig, wenn Sie in alten Versionen, die Kunden verwenden, Bugfixes durchführen müssen. Sie müssen in der Lage sein zu verwalten, "nur dieses winzige Problem zu beheben, aber ich möchte nicht die neueste Version, weil ich es jetzt nicht noch einmal testen möchte".
quelle
Es hängt davon ab, wie ernst Sie es mit der Versionierung Ihres eigenen Codes nehmen möchten. Wenn Sie beispielsweise eine einfache Bibliothek erstellen, die immer nur die aktuelle Version enthält (oder so lange dies zutrifft), würde ich persönlich nur eine einfache Sicherungsoption wie Dropbox verwenden. Wenn Sie Ihren gesamten Code verlieren, können Sie ihn aus dem Internet wiederherstellen, und Dropbox bietet ein 30-Tage-Backup, falls Sie wirklich etwas Dummes tun.
Wenn Sie zum Beispiel Produktions- und Entwicklungszweige pflegen müssen, ist git ein großartiges Tool - und verdammt viel schneller als svn. Beachten Sie jedoch das Risiko eines Festplattenausfalls, wenn Sie die Daten nur lokal speichern.
quelle
Ich würde immer, immer, immer ein Versionskontrollsystem für jede Art von Entwicklungsprojekt verwenden. Groß oder klein ist wirklich egal. Ob ich zu Hause mit einer neuen Technologie spiele, einen kleinen Helfer schreibe, um mein Leben zu erleichtern, oder mich professionell in einem großen und verteilten Team weiterentwickle - ich möchte immer ein Versionskontrollsystem, das mich unterstützt.
Sicher, die meiste Zeit für kleine persönliche Projekte werden Sie die meisten Funktionen nicht nutzen, aber ein Git-Repository (oder sogar ein lokales Subversion-Repository) einzurichten ist keine große Sache. Und bevor Sie es wissen, werden Sie wissen wollen, "verdammt, was war der Inhalt von Datei X letzten Freitag?". Ohne Versionskontrolle - viel Glück ;-)
Es spielt also keine Rolle, ob Sie git oder SVN verwenden - ich persönlich beginne, immer mehr Dinge von SVN nach git zu migrieren, aber die Hauptsache ist, die Versionskontrolle überhaupt zu verwenden - auch für die kleinen Dinge.
quelle
Nur weil es niemand erwähnt hat: Für persönliche Projekte ist darcs wirklich gut und weniger involviert als git für die einfache Versionskontrolle. Es ist nicht so schnell für größere Projekte, aber Subversion auch nicht!
quelle
Es kann ein starker mentaler Paradigmenwechsel sein, zu verstehen, dass wir experimentieren. Ein billiges / einfaches Tool, das dies unterstützt, verbessert Ihre Fähigkeit, sich vorwärts zu bewegen, zum Teil, weil es Ihre Fähigkeit verbessert, aus einem Experiment auszusteigen, wenn es sich als schlecht herausstellt.
Viele Entwickler sagen: Ich mache nur Kopien meines Codes. Diese Kopien werden jedoch schwierig zu verwalten und führen zu Unordnung. Sie haben mehrere Kopien und können sich nicht merken, welche für was kopiert wurde. Versuchen Sie dann herauszufinden, wann das Löschen sicher ist.
All dies wird noch wertvoller, wenn das Experiment koordinierte Änderungen über mehrere Dateien hinweg beinhaltet. Und wenn es sich um ein Solo-Projekt handelt, wird die Verwendung von Git noch einfacher.
Anstatt zu überlegen, ob ich es für ein Soloprojekt verwenden soll, denke ich jetzt, was für eine Schande, dass ich das nicht früher entdeckt hatte.
quelle