Arch Git

From FreeCAD Documentation
(Redirected from Arch Git/it)
This page is a translated version of the page WebTools Git and the translation is 31% complete.
Outdated translations are marked like this.

Arch Git

Posizione nel menu
Arch → Utilità → Git
Ambiente
Arch
Avvio veloce
‏‎
Introdotto nella versione
-
Vedere anche
Nessuno

Nota: A partire da FreeCAD v0.17, questo strumento è stato rimosso dall'ambiente Arch e ora fa parte dell'ambiente esterno Webtools che è possibile installare tramite il menu Strumenti → Addons Manager

Descrizione

Questo comando consente di eseguire il commit del documento attivo a un repository GIT. GIT è un potente sistema di controllo di versione del file, è in grado di gestire diverse versioni dei file e di conservare la traccia delle modifiche.

Git è uno strumento complesso, prima di utilizzare questo strumento considerare di imparare le sue basi, al fine di evitare operazioni errate che possono causare la perdita di dati. Su internet è disponibile e facile da trovare una abbondante letteratura su GIT.

Note: Per essere in grado di utilizzare questo comando, sul sistema deve essere installato il pacchetto gitpython. Sulla maggior parte delle distribuzioni Linux, gitpython è disponibile nei repository software standard come gitpython o python-git.

Utilizzo

  1. Salvare il documento attivo corrente
  2. Assicurarsi che il file salvato è già parte di un repository git
  3. Selezionare il menu Arch → Utilità → Git

Opzioni

  • Assicurarsi che il pannello Report sia aperto in modo che i messaggi di Git possano essere stampati al suo interno.
  • Lo strumento Git si apre solo se il file corrente è salvato all'interno di un repository Git. Può essere in una sottodirectory.
  • Il pulsante Log apre una finestra di dialogo che mostra i log (le voci di registro) più recenti.
  • Il pulsante Refresh esegue una nuova scansione del repository per individuare i file modificati.
  • Il pulsante Diff mostra le differenze tra la versione corrente di un file selezionato e la versione precedente memorizzata nel repository.
  • Il pulsante Select all seleziona tutti i file di cui fare il commit.
  • Il pulsante Commit esegue il commit dei file selezionati. Assicurarsi di scrivere un messaggio di commit che descrive le modifiche che si stanno commettendo.
  • Il pulsante Pull scarica le eventuali nuove modifiche nel repository locale da quello remoto selezionato. Se il file attualmente aperto in FreeCAD è stato modificato da un Pull, un messaggio di avviso informa l'utente in modo che egli possa salvare nuovamente il file o salvarlo altrove.
  • Il pulsante Push carica il proprio ultimo commit (s) nel repository remoto selezionato.

Limitations

  • Lo strumento non è ancora in grado di creare dei nuovi repository. È necessario disporre di un repository locale esistente già creato (FreeCAD controllerà se il file del documento corrente è all'interno di un repository Git)
  • Lo strumento non può modificare o creare rami. È necessario farlo manualmente con gli strumenti standard di Git.

Attivare la leggibilità delle differenze per i file FCStd

Il formato dei file Fcstd di FreeCAD è un formato binario basato su zip, per il quale Git non può produrre differenze corrette. Ciò significa che non si può vedere cosa è cambiato tra una versione e l'altra, e anche che ogni nuova versione memorizzata nel repository Git è una copia completa del file.

Anche se il secondo problema attualmente non ha una soluzione, il primo può essere risolto con un piccolo strumento disponibile nel codice sorgente di FreeCAD, chiamato fcinfo. A Git può essere ordinato di utilizzare l'utilità fcinfo per stampare un rapporto human-friendly (leggibile dalle persone) di un file FCStd, e, quando gli viene chiesto di produrre un differenza tra due file FCStd, produce invece un diff tra i due rapporti fcinfo. Notare che questo è solo un feedback visivo, una copia completa del file rimane ancora memorizzata internamente.

Esempio di una differenza prodotta con 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)

Ogni file di FreeCAD contiene un numero checksum SHA1, che cambia ogni volta che il file viene salvato, anche se non è stato cambiato nessun contenuto. Così fcinfo stampa sempre qualcosa, non importa se il contenuto cambia.

Per abilitare l'utilizzo di fcinfo (solo per Linux e Mac - Da fare: aggiungere le istruzioni per Windows)

Using fcinfo on a single Git repository

  1. Salvare il file fcinfo da qualche parte nel sistema
  2. Renderlo eseguibile
  3. Creare un file .gitattributes nel proprio repository Git
  4. Aggiungere in esso la seguente riga:
*.FCStd diff=fcinfo
*.FCStd diff=fcinfo
  • Add the following lines to the .gitconfig file in your home directory:
[diff "fcinfo"]
textconv = /path/to/fcinfo
  • Alternatively, if you want to invoke fcinfo with arguments (e.g., --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.

Enabling fcinfo globally

If you are working on many projects that need fcinfo tool you can enable it globally for your user.

  • Create a $HOME/.config/git/attributes file and add the following line on it:
*.FCStd diff=fcinfo
  • Add the following lines to the $HOME/.config/git/config file:
    • It's equivalent command is git config --global diff.fcinfo.textconv "/path/to/fcinfo".
    • Arch Linux users using 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.