WebTools Git/de

Beschreibung
Dieser Befehl erlaubt die Verwaltung des aktuellen Dokuments mit Git. GIT ist ein leistungsfähiges Dateiversionskontrollsystem, das verschiedene Dateiversionen verwalten und die Änderungen verfolgen kann.

Git ist ein komplexes Werkzeug, daher solltest du dich mit den Grundlagen vertraut machen, bevor du dieses Werkzeug verwendest, um Fehlbedienungen zu vermeiden, die zu Datenverlusten führen können. Im Internet gibt es eine Fülle von Literatur über GIT, die leicht zu finden ist.

Voraussetzung: Um diesen Befehl verwenden zu können, muss das gitpython Paket auf deinem System installiert sein. Auf den meisten Linux Distributionen ist gitpython in den Standard Software Repositorien als gitpython oder python-git verfügbar.

Anwendung

 * 1) Stelle sicher, dass die Berichtsansicht geöffnet ist, da die Git Meldungen dort ausgegeben werden.
 * 2) Speichere das aktuell aktive Dokument und stelle sicher, dass sich die gespeicherte Datei in einem bestehenden Git Repositorium befindet. Es kann sich in einem Unterverzeichnis befinden.
 * 3) Menü auswählen
 * 4) Dies öffnet ein Aufgabenfeld in der Combo Ansicht.

Optionen



 * Die Protokoll Schaltfläche klappt einen Dialog auf, in dem die aktuellsten Protokolleinträge angezeigt werden. Die Ausgabe entspricht.
 * Die Aktualisieren Schaltfläche wird das Repository auf geänderte Dateien durchsuchen. Nach dem Speichern deiner Arbeit musst du einen manuellen Refresh durchführen.
 * Der Diff Schaltfläche wird die Unterschiede zwischen der aktuellen Version einer ausgewählten Datei und der aktuellsten im Repository gespeicherten Vorversion anzeigen. Die Ausgabe entspricht
 * Als Standardvorgabe wird ein "binary diff" ausgeführt, du musst das  einrichten, um ein "texutal diffing" durchzuführen.
 * Der Select all Schaltfläche wird alle Dateien auswählen, um sie an das Repository zu übergeben (commit)
 * Der Commit Schaltfläche wird die ausgewählten Dateien an das Repository übergeben (commit). Stelle sicher, eine Commit-Meldung zu erfassen, die die zu übergebenden Änderungen beschreiben
 * Der Pull Schaltfläche wird jegliche neuen Änderungen aus dem ausgewählten entfernten (remote) Repositorium in das lokale herunterladen. Wenn die aktuell in FreeCAD geöffnete Datei durch einen Pull verändert wird, informiert eine Warnmeldung darüber, so dass die Datei entweder erneut gespeichert oder an einer anderen Stelle gespeichert werden kann
 * Der Push Schaltfläche wird den/die letzten Commit/s in das entfernte Repositorium hochladen.

Begrenzungen

 * Das Werkzeug kann noch keine neuen Repositorien erstellen. Du musst bereits ein lokales Repositorium angelegt haben. (FreeCAD prüft, ob sich die aktuelle Dokumentendatei in einem Git Repositorium befindet.)
 * Das Werkzeug kann keine Zweige ändern oder erstellen. Dies musst du manuell mit Standard Git Werkzeugen machen.

Aktivieren von menschenlesbaren diffs für FCStd Dateien mit dem Dienstprogramm fcinfo
FreeCADs FCStd Dateiformat ist ein Zip-basiertes Binärformat, für das Git keine sauber lesbaren diffs (Unterschiede) erstellen kann. Das bedeutet, dass Du nicht sehen kannst, was sich zwischen der einen und der anderen Version geändert hat und dass jede neue im Git Repositorium gespeicherte Version eine vollständige Kopie der Datei ist.

Auch wenn es für das zweite Problem bisher keine Lösung gibt, kann das erste mit einem kleinen Werkzeug aus dem FreeCAD Quellcode gelöst werden, das fcinfo heißt. Git kann angewiesen werden, das fcinfo Dienstprogramm zu verwenden, um einen menschengerechten Bericht einer FCStd Datei auszudrucken, und wenn es aufgefordert wird, einen Vergleich zwischen zwei FCStd Dateien zu erstellen, wird es stattdessen einen Vergleich zwischen den beiden fcinfo Berichten erstellen. Bitte beachte, dass dies nur eine visuelle Rückmeldung ist, eine vollständige Kopie der Datei wird weiterhin intern gespeichert.

Beispiel eines mit fcinfo erstellten diff:

Jede FreeCAD Datei enthält eine SHA1 Prüfsumme, die sich jedes Mal beim Speichern der Datei ändert, selbst wenn der Inhalt nicht verändert wurde. Deshalb wird fcinfo immer etwas ausgeben, unabhängig davon, ob sich der Inhalt ändert.

Zur Aktivierung der Nutzung von fcinfo (nur Linux und Mac - ToDo: Windows Anweisungen hinzufügen)

*.FCStd diff=fcinfo Füge die folgenden Zeilen zur -Datei in deinem home Verzeichnis hinzu: [diff "fcinfo"] textconv = /Pfad/zu/fcinfo Alternativ kannst du fcinfo mit Argumenten ausführen (z.B. ), benutze diesen Herangehensweise [https://stackoverflow.com/questions/55601430/how-to-pass-a-filename- argument-gitconfig-diff-textconv]: [diff "fcinfo"] textconv = sh -c '/path/to/fcinfo --gui "$0"'
 * 1) Speichere die fcinfo Datei irgendwo in deinem Systempfad
 * 2) Mache sie ausführbar
 * 3) Erstelle eine  -Datei in deinem Git Repositorium und füge die folgende Zeile hinzu: