WebTools Git/es: Difference between revisions

From FreeCAD Documentation
(Created page with "==Opciones==")
(Updating to match new version of source page)
 
(32 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages/>
{{GuiCommand|Name=Arch Git‏‎|Workbenches=[[Arch Module|Arch]]|MenuLocation=Arch → Utilities → Git|Shortcut=‏‎|SeeAlso=}}


{{GuiCommand/es
==Description==
|Name=WebTools Git‏‎
|Name/es=HerramientasWeb Git
|MenuLocation=HerramientasWeb → Git
|Workbenches=[[WebTools_Workbench/es|HerramientasWeb]]
|Version=0.17
}}


{{VeryImportantMessage|A partir de FreeCAD v0.17, esta herramienta ha sido eliminada del Ambiente de trabajos Arquitectura y ahora forma parte del [[WebTools_Workbench/es|Ambiente de trabajos HerramientasWeb]] externo que puedes instalar a través del menú Herramientas → [[Image:AddonManager.svg|24px]] [[Std_AddonMgr/es|Administrador de complementos]].
Este comando permite administrar el actual documento con [https://en.wikipedia.org/wiki/Git_%28software%29 GIT]. GIT es un sistema de control de versiones de archivos y mantiene seguimiento de los cambios.
}}


<span id="Description"></span>
GIT es una herramienta compleja, considera aprender lo basico de el antes de usar esta herramienta, para evitar operaciones erroneas que pueden causar perdida de datos.Un literatura abundante acerca de GIT esta disponible y facil de encontrar en internet.
==Descripción==


Este comando permite gestionar el documento actual con [https://es.wikipedia.org/wiki/Git GIT]. GIT es un potente sistema de control de versiones de archivos, que puede gestionar diferentes versiones de archivos y hacer un seguimiento de los cambios.
Limitaciones actuales:


Git es una herramienta compleja, considere la posibilidad de aprender los fundamentos de la misma antes de utilizar esta herramienta, para evitar operaciones erróneas que pueden causar la pérdida de datos. Hay una abundante literatura sobre GIT disponible y fácil de encontrar en Internet.
*La herramienta todavia no puede crear nuevos repositorios. tu tienes que tener un repositorio ya creado (FreeCAD revisara si el actual archivo de documento esta dentro de un repositorio Git)
*La herramienta no puede cambiar o crear derivaciones. tu debes hacer eso manualmente con herramientas regulares de Git.


'''Nota:''' para ser capaz de usar esta herramienta, el paquete [https://github.com/gitpython-developers/GitPython gitpython] debe ser instalado en tu sistema. En la mayoria de las distribuciones linux, gitpython esta disponible de los repositorios de software estandar como ''gitpython'' o ''python-git''.
Requisito:''' Para poder utilizar este comando, el paquete [https://github.com/gitpython-developers/GitPython gitpython] debe estar instalado en tu sistema. En la mayoría de las distribuciones de linux, gitpython está disponible en los repositorios de software estándar como ''gitpython'' o ''python-git''.


<span id="Usage"></span>
==Utilización==
==Utilización==


# Asegúrate de que la [[Report_view/es|Vista de informe]] está abierta ya que los mensajes Git se imprimirán allí.
# Guardar el documento activo actual
# Asegurarse que el archivo guardado esta dentro de un repositorio git existente
# Guarda el documento activo actual asegurándote de que el archivo guardado está dentro de un repositorio git existente. Puede estar en un subdirectorio.
# Seleccionar el menu Arquitectura -> Utilidades -> {{KEY|[[Image:Arch CommitGit.png|16px]] [[Arch Git|Git]]}}
# Seleccionar el menú {{MenuCommand|HerramientasWeb → [[Image:WebTools_Git.svg|16px]] [[WebTools_Git/es|Git]]}}
# Esto abre un [[Task_panel/es|Panel de tareas]] en la [[Combo_view/es|Vista combo]].


<span id="Options"></span>
==Opciones==
==Opciones==


[[Image:Arch Git panel.jpg|right]]
[[Image:Arch Git panel.jpg|thumb|Pestaña de tareas que muestra interfaz Git]]


* El botón '''Registro''' abrirá un diálogo mostrando las entradas de registro más recientes. La salida corresponde a <code>git log</code>.
* Make sure the '''Report Window''' is open since Git messages will be printed there.
* El botón '''Refrescar''' volverá a escanear el repositorio en busca de archivos modificados. Después de guardar su trabajo tiene que hacer un refresco manual.
* The Git tool will only open if the current file is saved inside a Git repository. It can be in a subdirectory.
* El botón '''Diff''' mostrará las diferencias entre la versión actual de un archivo seleccionado y la versión más reciente almacenada en el repositorio. La salida corresponde a <code>git diff</code>.
* The '''Log''' button will pop up a dialog showing the most recent log entries.
** Por defecto se hace un diff binario, hay que configurar la herramienta <code>fcinfo</code> para hacer un diff textual.
* The '''Refresh''' button will re-scan the repository for changed files.
* El botón '''Seleccionar todo''' seleccionará todos los archivos a ser confirmados.
* The '''Diff''' button will show the differences between the current version of a selected file and the previous version stored in the repository.
* El botón '''Confirmar''' confirmará los archivos seleccionados. Asegúrese de escribir un mensaje de confirmación que describa los cambios que está confirmando.
* The '''Select all''' button will select all files to be committed.
* El botón '''Pull''' descargará cualquier nuevo cambio en el repositorio desde el remoto seleccionado. Si el archivo actualmente abierto en FreeCAD está siendo modificado por un pull, un mensaje de advertencia te informará para que puedas guardar el archivo de nuevo o guardarlo en otro lugar.
* The '''Commit''' button will commit the selected files. Be sure to write a commit message that describes the changes you are committing.
* El botón '''Empujar''' subirá su(s) última(s) confirmación(es) al remoto seleccionado.
* The '''Pull''' button will '''download''' any new changes to the repository from the selected remote. If the file currently opened in FreeCAD is being modified by a pull, a warning message will inform you so you can either save the file again or save it elsewhere.
* The '''Push''' button will '''upload''' your latest commit(s) to the selected remote.


==Limitations==
==Enabling human-readable diff for FCStd files==


<div class="mw-translate-fuzzy">
FreeCAD's [[Fcstd file format]] is a zip-based binary format, for which Git cannot produce proper diffs. This means that you cannot see what has changed between one version and another, and also that each new version stored in the Git repository is a full copy of the file.
==Limitaciones==
* La herramienta no puede crear nuevos repositorios todavía. Debe tener un repositorio local ya creado. (FreeCAD comprobará si el archivo del documento actual está dentro de un repositorio Git).
* La herramienta no puede cambiar o crear ramas. Debes hacerlo manualmente con las herramientas Git estándar.
</div>


<span id="Enabling_human-readable_diffs_for_FCStd_files_with_the_fcinfo_utility"></span>
Although the second problem currently has no solution, the first one can be solved with a little tool available from the FreeCAD source code, called [https://github.com/FreeCAD/FreeCAD/blob/master/src/Tools/fcinfo fcinfo]. Git can be told to use the fcinfo utility to print a human-friendly report of a FCStd file, and, when asked to produce a diff between two FCStd files, will produce a diff between the two fcinfo reports instead. Please note that this is only visual feedback, a full copy of the file will still be stored internally.
==Habilitación de diffs legibles por humanos para archivos FCStd con la utilidad fcinfo==


El [[File_Format_FCStd/es|Formato de archivo FCStd]] de FreeCAD es un formato binario basado en zip, para el que Git no puede producir diffs adecuados. Esto significa que no puedes ver lo que ha cambiado entre una versión y otra, y también que cada nueva versión almacenada en el repositorio Git es una copia completa del archivo.
Example of a diff produced with fcinfo:

Aunque el segundo problema actualmente no tiene solución, el primero puede ser resuelto con una pequeña herramienta disponible en el código fuente de FreeCAD, llamada [https://github.com/FreeCAD/FreeCAD/blob/master/src/Tools/fcinfo fcinfo]. Se le puede decir a Git que utilice la utilidad fcinfo para imprimir un informe amigable de un archivo FCStd, y, cuando se le pida que produzca una diferencia entre dos archivos FCStd, producirá una diferencia entre los dos informes fcinfo en su lugar. Tenga en cuenta que esto es sólo un informe visual, una copia completa del archivo seguirá siendo almacenada internamente.

Ejemplo de un diff producido con fcinfo:


{{Code|code=
{{Code|code=
Line 89: Line 107:
}}
}}


Cada archivo de FreeCAD contiene un número de suma de comprobación SHA1, que cambiará cada vez que se guarde el archivo, incluso si no se ha cambiado el contenido. Así que fcinfo siempre imprimirá algo, sin importar los cambios en el contenido.
Each FreeCAD file contains a SHA1 checksum number, which will change each time the file is saved, even if no contents was changed. So fcinfo will always print something, no matter of the contents changes.


To enable the use of fcinfo (Linux and Mac only - TODO: add Windows instructions)
Para habilitar el uso de fcinfo (sólo para Linux y Mac - PARAHACER: añadir instrucciones para Windows)


# Save the fcinfo file somewhere in your system path
=== Using fcinfo on a single Git repository ===
# Make it executalbe
# Create a .gitattributes file in your Git repository
# Add the following line in it:
*.FCStd diff=fcinfo


<div class="mw-translate-fuzzy">
{{clear}}
# Guarda el archivo fcinfo en algún lugar de la ruta de tu sistema
<languages/>
# Hazlo ejecutable
# Crea un archivo <code>.gitattributes</code> en tu repositorio Git y añade la siguiente línea en él:
*.FCStd diff=fcinfo
Añade las siguientes líneas al archivo <code>.gitconfig</code> en tu directorio principal:
[diff "fcinfo"]
textconv = /ruta/a/fcinfo
Alternativamente, si quieres invocar fcinfo con argumentos (por ejemplo, <code>--gui</code>) utiliza este enfoque [https://stackoverflow.com/questions/55601430/how-to-pass-a-filename-argument-gitconfig-diff-textconv]:
[diff "fcinfo"]
textconv = sh -c '/ruta/a/fcinfo --gui "$0"'
</div>

: {{Code|lang=text|code=
*.FCStd diff=fcinfo
}}

* Add the following lines to the {{Incode|.gitconfig}} file in your home directory:

: {{Code|lang=text|code=
[diff "fcinfo"]
textconv = /path/to/fcinfo
}}

* Alternatively, if you want to invoke fcinfo with arguments (e.g., {{Incode|--gui}}) use [https://stackoverflow.com/questions/55601430/how-to-pass-a-filename-argument-gitconfig-diff-textconv this approach]:

: {{Code|lang=text|code=
[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 {{Incode|$HOME/.config/git/attributes}} file and add the following line on it:

: {{Code|lang=text|code=
*.FCStd diff=fcinfo
}}

* Add the following lines to the {{Incode|$HOME/.config/git/config}} file:
** It's equivalent command is {{Incode|git config --global diff.fcinfo.textconv "/path/to/fcinfo"}}.
** Arch Linux users using {{Incode|freecad}} package can use {{Incode|textconv = fcinfo}} since it's already installed on their system.

: {{Code|lang=text|code=
[diff "fcinfo"]
textconv = /path/to/fcinfo
}}

Note that any configuration made in a repository basis overrides global configurations.

Latest revision as of 10:46, 20 February 2024

HerramientasWeb Git

Ubicación en el Menú
HerramientasWeb → Git
Entornos de trabajo
HerramientasWeb
Atajo de teclado por defecto
Ninguno
Introducido en versión
0.17
Ver también
Ninguno

A partir de FreeCAD v0.17, esta herramienta ha sido eliminada del Ambiente de trabajos Arquitectura y ahora forma parte del Ambiente de trabajos HerramientasWeb externo que puedes instalar a través del menú Herramientas → Administrador de complementos.

Descripción

Este comando permite gestionar el documento actual con GIT. GIT es un potente sistema de control de versiones de archivos, que puede gestionar diferentes versiones de archivos y hacer un seguimiento de los cambios.

Git es una herramienta compleja, considere la posibilidad de aprender los fundamentos de la misma antes de utilizar esta herramienta, para evitar operaciones erróneas que pueden causar la pérdida de datos. Hay una abundante literatura sobre GIT disponible y fácil de encontrar en Internet.

Requisito: Para poder utilizar este comando, el paquete gitpython debe estar instalado en tu sistema. En la mayoría de las distribuciones de linux, gitpython está disponible en los repositorios de software estándar como gitpython o python-git.

Utilización

  1. Asegúrate de que la Vista de informe está abierta ya que los mensajes Git se imprimirán allí.
  2. Guarda el documento activo actual asegurándote de que el archivo guardado está dentro de un repositorio git existente. Puede estar en un subdirectorio.
  3. Seleccionar el menú HerramientasWeb → Git
  4. Esto abre un Panel de tareas en la Vista combo.

Opciones

Pestaña de tareas que muestra interfaz Git
  • El botón Registro abrirá un diálogo mostrando las entradas de registro más recientes. La salida corresponde a git log.
  • El botón Refrescar volverá a escanear el repositorio en busca de archivos modificados. Después de guardar su trabajo tiene que hacer un refresco manual.
  • El botón Diff mostrará las diferencias entre la versión actual de un archivo seleccionado y la versión más reciente almacenada en el repositorio. La salida corresponde a git diff.
    • Por defecto se hace un diff binario, hay que configurar la herramienta fcinfo para hacer un diff textual.
  • El botón Seleccionar todo seleccionará todos los archivos a ser confirmados.
  • El botón Confirmar confirmará los archivos seleccionados. Asegúrese de escribir un mensaje de confirmación que describa los cambios que está confirmando.
  • El botón Pull descargará cualquier nuevo cambio en el repositorio desde el remoto seleccionado. Si el archivo actualmente abierto en FreeCAD está siendo modificado por un pull, un mensaje de advertencia te informará para que puedas guardar el archivo de nuevo o guardarlo en otro lugar.
  • El botón Empujar subirá su(s) última(s) confirmación(es) al remoto seleccionado.

Limitations

Limitaciones

  • La herramienta no puede crear nuevos repositorios todavía. Debe tener un repositorio local ya creado. (FreeCAD comprobará si el archivo del documento actual está dentro de un repositorio Git).
  • La herramienta no puede cambiar o crear ramas. Debes hacerlo manualmente con las herramientas Git estándar.

Habilitación de diffs legibles por humanos para archivos FCStd con la utilidad fcinfo

El Formato de archivo FCStd de FreeCAD es un formato binario basado en zip, para el que Git no puede producir diffs adecuados. Esto significa que no puedes ver lo que ha cambiado entre una versión y otra, y también que cada nueva versión almacenada en el repositorio Git es una copia completa del archivo.

Aunque el segundo problema actualmente no tiene solución, el primero puede ser resuelto con una pequeña herramienta disponible en el código fuente de FreeCAD, llamada fcinfo. Se le puede decir a Git que utilice la utilidad fcinfo para imprimir un informe amigable de un archivo FCStd, y, cuando se le pida que produzca una diferencia entre dos archivos FCStd, producirá una diferencia entre los dos informes fcinfo en su lugar. Tenga en cuenta que esto es sólo un informe visual, una copia completa del archivo seguirá siendo almacenada internamente.

Ejemplo de un diff producido 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)

Cada archivo de FreeCAD contiene un número de suma de comprobación SHA1, que cambiará cada vez que se guarde el archivo, incluso si no se ha cambiado el contenido. Así que fcinfo siempre imprimirá algo, sin importar los cambios en el contenido.

Para habilitar el uso de fcinfo (sólo para Linux y Mac - PARAHACER: añadir instrucciones para Windows)

Using fcinfo on a single Git repository

  1. Guarda el archivo fcinfo en algún lugar de la ruta de tu sistema
  2. Hazlo ejecutable
  3. Crea un archivo .gitattributes en tu repositorio Git y añade la siguiente línea en él:
 *.FCStd diff=fcinfo

Añade las siguientes líneas al archivo .gitconfig en tu directorio principal:

 [diff "fcinfo"]
 textconv = /ruta/a/fcinfo

Alternativamente, si quieres invocar fcinfo con argumentos (por ejemplo, --gui) utiliza este enfoque [1]:

 [diff "fcinfo"]
 textconv = sh -c '/ruta/a/fcinfo --gui "$0"'
*.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.