My Universe Logo

Git – der Depp der Version

Posted by Jesco Freund at Feb. 28, 2009 9:50 a.m.

Bisher war Subversion das VCS meiner Wahl. Der zentrale Verwaltungsansatz hat mich nicht im geringsten gestört (im Gegenteil, ich finde es eher hilfreich, wenn zumindest an einer Stelle eine Master-Version existiert), und das Konzept der flexiblen Tags und Branches ist eine für mich durchaus einleuchtende Geschichte. Außerdem plagt mich natürlich ein für den Homo sapiens typisches Phänomen: Gewöhnung. Ich kenne die Subversion-Kommandos, weiß, wie man ein Repository einrichtet – kurz: die Arbeit mit Subversion ist mir in Fleisch und Blut übergegangen. Wechseln, umlernen, umgewöhnen, von vorne anfangen? Puhhhh…. :-O

Verteilten VC-Systemen stand ich bisher mit einiger Skepsis gegenüber. Zum einen, weil ich selbst keinen wirklichen Bedarf an einem VCS hatte (wer an den zentralen Ansatz gewöhnt ist, organisiert sich und seine Projekte fast zwangsläufig so, dass dies keine Einschränkung für den Entwicklungsalltag bedeutet – oder man sie zumindest nicht als solche wahrnimmt). Zum anderen sicherlich auch, weil es einfach ein paar zu viele verteilte VCSe gibt, und sich lange kein klarer Favorit durchgesetzt hat. Mittlerweile kristallisiert sich aber heraus, dass wohl Git das Rennen um die Gunst der Entwickler machen wird. Auch SourceForge als größte Hosting-Plattform für Open Source Projekte hat Git jetzt als drittes VCS neben den Klassikern CVS und Subversion ins Angebot aufgenommen.

Also habe ich nun selbst angefangen, ein bisschen mit Git herumzuexperimentieren und ein erstes Projekt mit diesem VCS aufzusetzen. Große Überraschung meinerseits: die Handhabung ist tatsächlich extrem einfach. Nach der ganzen Diskussion um das „Porcelain“ und „Plumbing“ hatte ich schlimme Befürchtungen hinsichtlich Bedienbarkeit, die sich aber als unbegründet herausstellten. Als Subversion-Umsteiger kann man die meisten Kommandos erraten – häufig genügt es, svn durch git auszutauschen, und das gewünschte passiert.

Gegenüber Subversion sehe ich im Moment zwei große Pluspunkte, die auch für mich einen Umstieg attraktiv erscheinen lassen. Zum einen die Performance: Git ist unglaublich schnell. Klar, ein Commit wird ja erst mal nur lokal durchgeführt – allerdings dauert bei Subversion auch ein Commit in ein lokales Repository (file://) um einiges länger als bei Git. Den anderen großen Vorteil sehe ich darin, dass das Repository überall dieselbe Repräsentationsform auf dem Dateisystem hat. Bei Subversion benutzt das zentrale Repository eine andere Art der Datenablage als eine ausgecheckte Arbeitskopie, bei Git hingegen exisitiert diese Unterscheidung nicht. Jeder Pull ist somit gleichzeitig auch ein Full Backup, das Risiko eines Datenverlusts für ein Projekt entsprechend geringer.

Ich werde jetzt wohl erst mal eine Weile parallel mit Subversion und Git fahren – bestehende Subversion-Projekte zu migrieren werde ich erst angehen, wenn ich ein bisschen mehr an praktischer Erfahung mit Git gesammelt habe (und dann immer noch überzeugt davon bin…) Und hey, für die Namenswahl von Meister Linus kann ich nun wirklich nichts ;-)

3 comments | Defined tags for this entry: Git, open source, programming, scm, svn

Comments

Ja, git ist eine feine Sache.

Neben der hohen Geschwindigkeit beim Committen/Auschecken/Forken ist auch der Platzbedarf einer Working Copy trotz des dafür "unvorteilhaften" Modells ziemlich gut.

Wir haben in der Firma ein Projekt, das mit SVN rund 2,4 GiB belegt. Mit git (unter Nutzung von git-svn hergestellt) benötigt das gleiche Projekt inklusive *aller* Revisionen noch 900 MiB. Und mit git-svn ist auch ein Committen auf den SVN-Server möglich. So merken die anderen Benutzer nicht, dass ein anderes VCS benutzt wird und man kann trotzdem auf die Vorteile von git zurückgreifen. Sehr feine Sache das.

Für Einsteiger und SVN-Umsteiger empfehlen sich IMHO die beiden folgenden Dokumente:
http://git.or.cz/course/svn.html
http://www.kernel.org/pub/software/scm/git/docs/everyday.html

Roger Wilco on Feb. 28, 2009 11:19 CET

Nicht zu vergessen ist natürlich noch die Killeranwendung für git: http://github.com/

Roger Wilco on Feb. 28, 2009 11:20 CET

vor knapp zwei Jahren hat Linus Torwald einen netten Vortrag zu Git bei Google gehalten:
http://www.youtube.com/watch?v=4XpnKHJAok8

Karsten on Feb. 28, 2009 11:49 CET