WebTools Git/it

Note: Starting from FreeCAD v0.17, this tool has been removed from the Arch Workbench and is now part of the external Webtools Workbench that you can install via menu Tools -> 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.

Attuali limitazioni:


 * 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.

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à ->

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.

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:

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)

*.FCStd diff=fcinfo
 * 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: