WebTools Git

From FreeCAD Documentation
Revision as of 13:06, 24 March 2019 by David69 (talk | contribs)

Arch Git‏‎

Emplacement du menu
Arch → Utilities → Git
Ateliers
Arch
Raccourci par défaut
‏‎
Introduit dans la version
-
Voir aussi
Aucun

Note : à partir de FreeCAD v0.17, cet outil a été enlevé de l'atelier Arch et fait maintenant partie de l'atelier externe WebTools qui peut être installé depuis le menu Outils → Addons Manager.

Description

Cette commande permet de gérer le document actif via GIT. GIT est un puissant système de révisions de versions, et peut gérer des versions différentes de fichiers et garder une trace des changements.

Git est un outil complexe, considérez d'en apprendre les bases avant d'utiliser cet outil, afin d'éviter des opérations malavisées qui pourraient causer des pertes de données. Une littérature abondante sur Git est disponible et facile à trouver sur Internet.

Limitations actuelles :

  • L'outil ne peut pas créer de nouveaux dépôts pour l'instant. Vous devez avoir créé au préalable un dépôt local (FreeCAD vérifiera si le document courant est dans un dépôt Git)
  • L'outil ne peut pas changer ou créer des branches. Vous devez le faire manuellement avec les outils Git standard.

Note : pour pouvoir utiliser cette commande, le paquet gitpython doit être installé sur votre système. Sur la plupart des distributions Linux, gitpython est disponible à partir des dépôts de logiciels standards sous le nom gitpython ou python-git.

Utilisation

  1. Sauvegardez le document actif
  2. Assurez-vous que le fichier enregistré fait déjà partie d'un dépôt git
  3. Selectionnez le menu Arch → Utilitaires → File:Arch CommitGit.png Git

Options

  • Vous ne devez "commiter" que le fichier sauvé par FreeCAD, ou tous les fichiers modifiés et qui sont aussi dans le GIT.
  • Vous pouvez optionnellement aussi "pousser" la branche par défaut dans la branche GIT courante.
  • Assurez-vous que la fenêtre de rapport est ouverte car les messages Git y seront imprimés.
  • L'outil Git ne s'ouvrira que si le fichier actuel est enregistré dans un référentiel Git. Il peut être dans un sous-répertoire.
  • Le bouton Journal fera apparaître une boîte de dialogue indiquant les entrées de journal les plus récentes.
  • Le bouton Actualiser va ré-analyser le référentiel pour rechercher les fichiers modifiés.
  • Le bouton 'Diff' affiche les différences entre la version actuelle du fichier sélectionné et la version précédente stockée dans le référentiel.
  • Le bouton Tout sélectionner sélectionnera tous les fichiers à valider.
  • Le bouton Engager va valider les fichiers sélectionnés. Assurez-vous d'écrire un message de validation décrivant les modifications que vous avez validées.
  • Le bouton Pull va télécharger toutes les nouvelles modifications apportées au référentiel à partir de la télécommande sélectionnée. Si le fichier actuellement ouvert dans FreeCAD est en cours de modification par un tirage, un message d'avertissement vous en informera pour vous permettre de le sauvegarder à nouveau ou de le sauvegarder ailleurs.
  • Le bouton Push téléchargera votre dernier commit sur la télécommande sélectionnée.

Activation des différences lisibles par l'homme pour les fichiers FCStd

Le format de fichier Fcstd de FreeCAD est un format binaire au format zip, pour lequel Git ne peut pas produire de diffs corrects. Cela signifie que vous ne pouvez pas voir ce qui a changé entre les versions et que chaque nouvelle version stockée dans le référentiel Git est une copie complète du fichier.

Bien que le second problème n’ait actuellement pas de solution, le premier peut être résolu avec un petit outil disponible dans le code source de FreeCAD, appelé fcinfo . On peut dire à Git d’utiliser l’utilitaire fcinfo pour imprimer un rapport convivial pour un fichier FCStd et que, s’il est invité à produire un diff entre deux fichiers FCStd, il produira un diff entre les deux rapports fcinfo. Veuillez noter qu'il ne s'agit que d'un retour visuel. Une copie complète du fichier sera toujours stockée en interne.

Exemple de diff produit avec fcinfo:

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)

Chaque fichier FreeCAD contient un numéro de somme de contrôle SHA1, qui change à chaque sauvegarde du fichier, même si aucun contenu n'a été modifié. Donc, fcinfo imprimera toujours quelque chose, peu importe les changements de contenu.

Pour activer l'utilisation de fcinfo (Linux et Mac uniquement - TODO: ajouter des instructions Windows)

  1. Enregistrez le fichier fcinfo quelque part dans votre système
  2. Faites-le executalbe
  3. Créer un fichier .gitattributes dans votre référentiel Git
  4. Ajoutez la ligne suivante dedans:
*.FCStd diff=fcinfo