-
Notifications
You must be signed in to change notification settings - Fork 0
CodeTracker
Der Datentyp "CodeTracker" ist in der Lage, Codeänderungen des Nutzers aufzuzeichnen und in einer Log-Datei zu speichern. Diese Codeänderungen werden auf eine ähnliche Art und Weise präsentiert, wie es auch auf GitHub der Fall ist. (Zeilen werden markiert, wodurch alle Codeänderungen sichtbar werden.)
Bei der Instanziierung des Datentyps wird der Projektname übergeben, der danach fest mit dem CodeTracker verbunden ist. Über die Funktion getProjectName() kann der Name außerdem ausgelesen werden. Die bisherigen Codefortschritte werden mithilfe der Funktion updateContent aus der passenden Log-Datei ausgelesen (wenn sie existiert) und in einem klasseninternen Archiv gespeichert.
addCode: Diese Funktion bekommt den neuen Code übergeben. Daraufhin wird das aktuelle Datum von der Funktion getTime empfangen, um eine entsprechende Mitteilung in die Log-Datei einzufügen. Wenn im Codearchiv bereits mindestens eine ältere Version des Codes enthalten wird, wird die Funktion changesMade aufgerufen. Diese Funktion vergleicht die ältere Version des Codes mit der aktuellen:
- Befinden sich Codezeilen in der älteren Version, die nicht mehr in der neuen Version enthalten sind, werden sie mit einem - gekennzeichnet. Zeilen in der älteren Version, die bereits mit einem - versehen sind, werden von der neueren Version als nichtexistent angesehen.
- Befinden sich in der neuen Version Zeilen, die nicht in der alten Version enthalten waren, werden sie mit einem + gekennzeichnet.
- Zeilen, die sich nicht verändert haben, werden nicht gekennzeichnet. Diese müssen sich aber in beiden Versionen in der gleichen Reihenfolge befinden, damit sie erkannt werden. (Ungefähr so scheint auch der Git-Algorithmus zu funktionieren!)
Die neue Version des Codes wird von der Funktion listToText formatiert und im Archiv gespeichert. Befinden sich mehr als 10 Codeversionen im Archiv, wird es auf 10 Einträge gekürzt. Das aktualisierte Archiv wird dann mithilfe der Funktion textToLog in der passenden Log-Datei gespeichert.
\o/ Two Finger Joe \o/
Verzeichnis
Catalogue
- [Dateiformat](Catalogue.cfg Format)
- ParseSource
- ParseHelper
- CatalogueReader
- Catalogue, Project, ...
Controller
- Logic
- [Main Controller](Main Controller)
- [Project Controller](Project Controller)
File Interaction
Tracking