Git vs. Subversion
Subversion ist zentralisiert, Git hingegen dezentralisiert. Doch was sagt uns das genau? Eigentlich erstmal herzlich wenig. Subversion ist alt und hat einen langen Bart, aber dadurch auch viele Tools, die helfen mit SVN zu arbeiten. Git hingegen ist jung und derzeit eher noch in den Kinderschuhen.
Der Ansatz ist jedoch ein völlig anderer. So hat Git seine Funktionalität auf Open-Source Projekte fokussiert – mit Github.com schaffen die Entwickler ein Portal zum verwalten und verbreiten. Kombiniert mit einer großen Community und nützlichen Funktionen wie bspw. github:jobs oder auch gist.github gibt es einiges für das Entwicklerherz.
Subversion hingegen hat keine direkte Open-Source Community, sondern legt seinen Fokus wie auch CVS auf Projekte, die nicht auf Open-Source Ebene statt finden. Gerade in Firmen ist Subversion wegen der großen Anzahl an Tools beliebter als Git.
Ein weiterer Punkt ist die Schwierigkeit beider Versionsverwaltungen – so kann Subversion mit Einfachheit und Übersichtlichkeit Punkten – Git jedoch mit mehreren Möglichkeiten und einer sehr guten Dokumentation, die meiner Meinung nach die Übersichtlichkeit wett macht.
Subversion hat eine zentrale Repository, Git sogesehen zwei (eine lokale und die eigentliche Repository). Die Funktionalität bzw. die Befehle unterscheiden sich deshalb ein wenig:
Subversion | Git | Kommentar |
---|---|---|
svn up | git pull | Bezieht den aktuellen Stand aus der Repository. |
svn add | git add | Fügt Dateien, als auch Ordner hinzu (in Git als auch Subversion zunächst lokal). |
svn commit | git commit | Subversion lädt den aktuellen Stand direkt in die Repository – Git hingegen zunächst in die lokale Repository. |
– | git push [–all | –mirror | –tags] [-n | –dry-run] [–receive-pack= [–repo= [ |
Lädt den aktuellen Stand (commits) in die Repository. |
svn st | git st | Zeigt die aktuellen Änderungen. |
Das sind natürlich nur ein paar der Möglichkeiten, die beide Versionsverwaltungen bieten.
Was nutze ich?
Ich selbst habe mich für Git entschieden – weil Neues natürlich immer besser ist. Im Ernst, Git bietet meiner Meinung nach den (derzeit) höchst möglichen Standard und eine tolle Community, die nicht nur ein paar Projekte abbildet, sondern tonnenweise Papier füllen könnte. Ein weiterer Punkt ist, dass mich Subversion mit ein paar Eigenschaften nervt – wie bspw., dass in jedem Verzeichnis ein .svn Ordner zu finden ist. Das wird dann problematisch, wenn man einfach mal eben einen Ordner kopieren möchte. Subversion weis dann leider nicht, dass dieser Ordner noch nicht unter der Versionskontrolle ist. Das ist nur ein kleiner Punkt – aber durchaus nervig und leider nur ein Auszug aus den Punkten, die mich an Subversion stören.
Weiterführendes:
Git Dokumentation
SVN Dokumentation