Logo ICT-BZ

Gitty

Kurzinfo

Gitty ist ein TUI zur vereinfachung der Versionskontrolle mit Git.

Themenbereich

Softwareentwicklung

Lernende/r

Lian Studer

Lehrbetrieb

Hochschule Luzern

Betreuer

Urs Nussbaumer

Projekt-Website

https://github.com/lianstuder/gitty

Aufgabenstellung

Für die Versionskontrolle von Projekten gibt es viele verschiedene Tools und Programme, wie zum Beispiel Git oder Mercurial. Diese sind sowohl als GUI (Graphical User Interface = Graphische Benutzeroberfläche) sowie als CLI (Command Line Interface = Befehlszeilenanwendung) verfügbar. Das Ziel von Gitty ist es, die Übersichtlichkeit eines GUIs mit der simplizität von CLIs zu verbinden.

Ergebnisse

Aufgrund von Problemen wahrend dem Entwicklungsprozess, konnten einige grundlegende Features leider noch nicht implementiert werden. Folgende Funktionen sind in der aktuellen Version verfügbar: Git-Konsole, "git add", "git commit" und die Navigation mit der Tastatur.

Lösungskonzept

Der Mix aus GUI und CLI wird als TUI (Text User Interface) bezeichnet. Ich habe in C++ mit der Git-API und einer TUI Library ein TUI mit verschieden Bedienelementen gebaut. Die Interaktion mit diesen Bedienelementen gibt die entsprechenden Aktionen an die Git-API weiter.

Aufgetretene Probleme

Wo wurde Zeit verloren? Was konnte aufgrund welcher Schwierigkeiten nicht realisiert werden? --> Da ich zum ersten Mal C++ verwendet habe, hatte ich mehrere Probleme, wie zum Beispiel "segmentation faults", also Probleme mit Speicherzugriff oder auch mit dem OOP-Konzept von C++. Ich habe deswegen viel Zeit mit der Fehlerbehebung verbracht und konnte relativ wenig an den eigentlichen Funktionen meiner Software arbeiten. Gitty kann (Stand 8. Jan 2021) bietet nur die Funktionen von "git add" und "git commit", wobei andere Funktionen von Git über die eingebaute Git-Konsole verwendet werden können.

Ausblick

Gitty wird in Zukunft noch weiter an Funktionalität gewinnen und stetig erweitert werden, solange mir das Projekt noch spass macht. Ich konnte alle aufgetretenen Probleme selber lösen und werde auch in Zukunft versuchen, dieses Projekt selbstständig weiterzuentwickeln.