|
Menüeintrag |
---|
WebWerkzeuge → Git |
Arbeitsbereich |
Arbeitsbereich WebWerkzeuge |
Standardtastenkürzel |
Keiner |
Eingeführt in Version |
0.17 |
Siehe auch |
Keiner |
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.
git log
.git diff
fcinfo
einrichten, um ein "texutal diffing" durchzuführen.
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:
diff --git a/testhouse.FcStd b/testhouse.FcStd
index 08077b6..985b1d8 100644
--- a/testhouse.FcStd
+++ b/testhouse.FcStd
@@ -1,26 +1,25 @@
-Document: /tmp/43un09_testhouse.FcStd (442K)
- SHA1: 67c1985a45d93cba57d5bf44490897aba460100d
+Document: /tmp/zfXoDd_testhouse.FcStd (370K)
+ SHA1: db1cb5fca18af7bfdca849028f40550df4d845cb
Comment : This is a test house to showcase FreeCAD's BIM worflow and IFC export capabilities
Company : uncreated.net
CreatedBy : Yorik van Havre
CreationDate : Fri May 9 12:05:54 2014
FileVersion : 1
Id :
- Label : testhouse
- LastModifiedBy : Yorik van Havre
- LastModifiedDate : 2016-06-28T17:05:57-03:00
+ Label : testhouse2
+ LastModifiedBy : Yorik van Havre
+ LastModifiedDate : Sat Sep 13 20:46:36 2014
+
License : CC-BY 3.0
LicenseURL : http://creativecommons.org/licenses/by/3.0/
- ProgramVersion : 0.17R7800 (Git)
- TipName :
+ ProgramVersion : 0.15R3989 (Git)
Uid : 67e62d8a-6674-4358-92fe-615443be887a
- Objects: (231)
+ Objects: (221)
Annotation : Drawing::FeatureViewAnnotation
Annotation001 : Drawing::FeatureViewAnnotation
Annotation002 : Drawing::FeatureViewAnnotation
Annotation003 : Drawing::FeatureViewAnnotation
- Annotation004 : Drawing::FeatureViewAnnotation
- Annotation005 : Drawing::FeatureViewAnnotation
Array : Part::FeaturePython (9K)
Box : Part::Box (2K)
Building : App::DocumentObjectGroupPython
@@ -110,7 +109,7 @@ Document: /tmp/43un09_testhouse.FcStd (442K)
Floor : App::DocumentObjectGroupPython
Floor001 : App::DocumentObjectGroupPython
Floor002 : App::DocumentObjectGroupPython
- Frame : Part::FeaturePython (89K)
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)
Dies sind die Schritte, um den Einsatz des Werkzeugs fcinfo in a repository basis zu ermöglichen.
fcinfo
auf Arch-Linux-Systemen im Paket freecad
enthalten,patch here.fcinfo
auf Arch-Linux-Systemen unter /usr/bin/fcinfo
zu finden..gitattributes
-Datei im eigenen Git-Repository erstellen und folgende Zeile hinzufügen:*.FCStd diff=fcinfo
.gitconfig
file in your home directory:[diff "fcinfo"]
textconv = /path/to/fcinfo
--gui
) use this approach:[diff "fcinfo"]
textconv = sh -c '/path/to/fcinfo --gui "$0"'XD
Note that if you are working in a collaborative project you may want to include the fcinfo tool in your repository, in that case the path is relative to your Git repository root directory.
If you are working on many projects that need fcinfo tool you can enable it globally for your user.
$HOME/.config/git/attributes
file and add the following line on it:*.FCStd diff=fcinfo
$HOME/.config/git/config
file:
git config --global diff.fcinfo.textconv "/path/to/fcinfo"
.freecad
package can use {{{1}}}
since it's already installed on their system.[diff "fcinfo"]
textconv = /path/to/fcinfo
Note that any configuration made in a repository basis overrides global configurations.