icancode.de

Programmierung

SourceTree – Repositorieverwaltung

Veröffentlicht am .

SourceTree – Repositorieverwaltung

Einleitung

Versionierung ist einer der wichtigsten Aspekte der modernen Softwareentwicklung. Eine gute Versionierung trägt unter anderem zu einfacherer Fehlerfindung und Fehlerbehebung bei und verschafft einen Überblick über den Fortschritt des Projekts.

I Git You!

Versionierungssysteme gibt es einige. Die wohl bekanntesten sind wohl Git und Apache Subversion (kurz SVN). Nach dem was ich in letzter Zeit mitbekommen habe, scheint Git weitaus mehr verbreiteter zu sein als SVN. Dies mag wohl auch Plattformen wie GitHub oder Bitbucket geschuldet sein.
Normalerweise erfolgt die Arbeit mit einem Versionierungssystem über die Kommandozeile. Gewinnt das Projekt jedoch an Komplexität und Mitwirkenden, kann es auf der Kommandozeile schnell unübersichtlich werden. Dann ist es z.B. hilfreich, große Commits in kleine Stücke runterzubrennen und eine grafische Darstellung des Branchnetzwerks zu haben. Dies kann im Terminal eine ziemliche Fummelarbeit sein, weswegen viele Entwickler nach und nach auf grafische Tools umsteigen.

GUI > Terminal?

Diese Frage kann nur mit einem klaren »jein« beantwortet werden. Jedes Werkzeug hat seine Daseinsberechtigung und seine Vor- und Nachteile. Will ich einen großen Commit in viele kleine zerlegen, ohne direkt nach jeder noch so kleinen Änderung einen Commit zu machen, dann kann ein grafisches Werkzeug sehr hilfreich sein. Hier kann ich noch im Nachhinein einzelne Zeilen für Commits auswählen und habe alle veränderten Dateien auf einen Blick. Auch das Mergen oder Rebasen kann mit solchen Tools durchaus übersichtlicher sein. Pushen und Pullen erledige ich in der Regel über die Kommandozeile. Auch kleinere Commits erledige ich so. Es geht einfach schneller. Nach wie vor ist es sinnvoll, mit der Kommandozeile zu beginnen, bevor ein grafisches Hilfsmittel verwendet wird. Die eigentlichen CommandlineTools bedürfen eines besseren Verständnisses und bilden somit eine gute Grundlage. Nur wenn ich wirklich verstanden habe, wie mein Versionierungssystem funktioniert, kann ich auch ein grafishes Tool wirklich effizient nutzen.

SourceTree

SourceTree Icon
Viele Entwickler aus meinem Umfeld haben mir Tower2 empfohlen. Dabei handelt es sich um ein mächtiges grafisches Werkzeug mit hunderten von Möglichkeiten und Optionen. Es ist allerdings nur für MacOS zu haben und mit knapp 45 € alles andere als ein Schnäppchen. Also habe ich mich ein wenig auf die Suche gemacht. Ein Freund brachte mich schlussendlich auf SourceTree und darauf bin ich hängen geblieben. SourceTree läuft unter Windows und Mac, wodurch ich nicht an meinen Laptop gebunden bin. Ein klarer Pluspunkt. Optisch nehmen sich Tower2 und SourceTree nicht viel. Einige Blogger und Testberichte sehen SourceTree auch als klaren Gewinner des Design Duells. Ich bin da ziemlich liberal. Beide Programme sehen sehr gut aus. Die Tatsache, dass ich SourceTree jedoch als Freeware bekomme, hat mich überzeugt. Entwickelt wird die Anwendung übrigens von Atlassian, den Machern von BitBucket.

Schlank und Effizient

SourceTree bietet mir viele praktische Funktionen, die mir den Alltag erleichtern. Als Tutor an der Uni Bielefeld habe ich es teilweise mit mehr als 50 Repositories gleichzeitig zutun, da ist es nicht immer einfach, den Überblick zu behalten. In anderen Semestern sind es dann zwar nur zwei Repositories, aber jeweils ca. 16 Studierende die daran arbeiten. Eine grafische Oberfläche macht es mir möglich, mich schnell durch die einzelnen Verzeichnisse zu bewegen und mir einen Überblick über die Arbeit der letzten Tage und Wochen zu verschaffen. Auch kann ich mir alle schnell und einfach alle Commits eines Autors ansehen, um nachzuvollziehen, wer wie gut mitgearbeitet hat. Hier verwende ich es also in erster Linie der Übersichtlichkeit halber.

In meinen eigenen Projekten verwende ich auch eine Versteinerung. GitHub ist dafür eine tolle Plattform. Als Student erhalte ich dort mit dem neuen Education Pack eine Vielzahl an Vergünstigungen. Bei Ein-Mann-Projekten spiel die Übersicht über das Projekt eher keine große Rolle. In der Regel weiß ich, was ich da verzapft habe und wo was liegt.
Wenn ich alleine Arbeite neige ich jedoch auch dazu, große Commits zu machen. Ich schreibe also mal drei vier Stunden, bevor ich überhaupt was ins Repo schiebe. Dann ist es für mich unheimlich praktisch einzelne Dateien oder sogar Codezeilen auswählen zu können und diese Separat mit einer Commitmessage zu versehen. Somit kann ich eine detaillierte Dokumentation des Projekts gewährleisten und finde mich später wesentlich besser durch meinen Code.
Eine weitere tolle Funktion, ist die Integration von GitFlow. Dabei handelt es sich um eine sehr übersichtliche Strukturierung von Repositories, die jedoch durchaus etwas an Zeit in Anspruch nimmt. Besonders beim Erstellen. Wie genau GitFlow funktioniert, werde ich vielleicht mal in einem anderen Artikel erklären.

Einmal daran gewöhnt, ist SourceTree für mich das optimale Tools für die effiziente Überwachung, Strukturierung, Wartung meiner Projektverzeichnisse und erleichtert mir die Arbeit sehr. Durch eine plattformübergreifende Verfügbarkeit, kann ich es sowohl auf dem Laptop, als auch auf dem Desktop PC verwenden. Einzig die fehlende Unixunterstützung macht die Arbeit in den Uni Poolsräumen nicht immer einfach. Wer also völlig Plattformunabhängig arbeiten will oder muss, der ist mit der Kommandozeile besser beraten.

Rico Magnucki

Rico Magnucki

http://magnucki.de

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.

Navigation