Nachdem ich mir an diesem Wochenende mal git nähergebracht habe, kann ich verstehen warum alle so jubilieren…

Es ist schon echt genial wie man dort mit Branches arbeiten kann. Das Switchen/Mergen von Branches ist einfach nur genial flink. Im Vergleich zu svn ist das für mich schon in Nullzeit.

Meine alte Arbeitsweise bei svn bestand immer darin mehr als ein Sandkasten zu haben. Einer war immer für die aktuelle Weiterentwicklung (trunk) und daneben gabs dann noch diverse für bestimmte Features an denen man ab und an weiterarbeitet.

Da ich auf Arbeit auch häufig springen muss (von trunk<->cur-release) und dann den aktuellen Zweig nicht commiten konnte (da unfertig) hatte ich halt auch mehrere Sandkästen.

Nie wieder sag ich, git stash sei dank. Einfach die aktuellen Änderungen in ein stash verpacken (natürlich kann man beliebig viele haben) und den Sandkasten mittels git checkout <anderer_branch> in den anderen Branch wandeln (in Rekordzeit), dort die notwendige Arbeit verrichten (inkl. commit) und zurückspringen und Stash wieder rausholen. Alles auf ein und dem selben Sandkasten….

Für meine Mythtv Entwicklung verwende ich nun auch noch Topgit, das ist ein Aufsatz (shell-scripts) auf git. Das vereinfacht das Management von hierarchischen Branches. StackedGit hab ich mir im übrigen auch angesehen, für meine Arbeitsweise aber nicht ganz so ideal.

In jedem Fall möchte ich nie wieder meine Mythtv Entwicklung mit svn erledigen, das ständige remote-mergen (vom original trunk) und lokale mergen mit fremden Patchsets (aus trac) war einfach nur die Hölle. Vor allem das generieren von Patches (z.B. gegen fremde Patchsets) ist dank der hierarchischen Branchstruktur jetzt soo einfach…ich bin auf jeden Fall happy.

Das Thema git wird auf jeden Fall in unserer Firma auf den Tisch kommen, erstmal werde ich aber noch weiter an Erfahrung damit sammeln.