Control de versiones

Introducción

El control de versiones permite al/a los usuario(s) de un proyecto guardar el historial completo de revisiones de un proyecto de Control FPWIN Pro7 en una base de datos especial (repositorio de proyectos) con la granularidad de los objetos del navegador. Este repositorio de proyectos es la fuente oficial de un proyecto con sus estados de desarrollo actuales e históricos (revisiones). Cada revisión se caracteriza por un conjunto coherente de cambios con respecto a la revisión anterior. El historial completo de revisiones se puede consultar, clasificar y filtrar en cualquier momento por número de revisión, fecha y hora, autor y comentario. Los cambios se pueden examinar, las revisiones se pueden comparar entre sí, se pueden reelaborar revisiones pasadas y se pueden crear etiquetas y ramas en el desarrollo del proyecto. Los usuarios de este proyecto crean su propia copia de trabajo local a partir de la revisión actual ("tip" (confirmación del cambio más reciente)) del repositorio del proyecto, realizan y prueban los cambios locales y, al confirmar esos cambios en el repositorio de proyectos, crean una nueva revisión, que puede ser actualizada en las copias de trabajo de otros usuarios. Lo mismo ocurre con todas las librerías de usuario del proyecto que están bajo el control de versiones.

De este modo, un proyecto con control de versiones también permite el cambio de objetos en el mismo proyecto o librería de usuario para múltiples usuarios. El proyecto convencional o librería de usuario se desdobla por completo en una "réplica" del proyecto, denominada "copia de trabajo", que se guarda en una carpeta con control de versiones independiente. Tanto el archivo del proyecto como la copia de trabajo utilizan el mismo nombre y están conectados con Control FPWIN Pro7. Los dos contienen los mismos datos de configuración en general, pero la copia de trabajo contiene una estructura de objetos detallada con la granularidad conocida del navegador y, sobre todo, archivos legibles por el ser humano, en contraste con el archivo del proyecto. Esta estructura de carpetas y archivos se crea para permitir el control de versiones y el desarrollo multiusuario.

Tanto la librería de usuario como su copia de trabajo utilizan el mismo nombre. La conexión de ambas se realiza al ubicar la copia de trabajo de la librería de usuario directamente en la carpeta "Libraries" de la copia de trabajo del proyecto.

Además, la copia de trabajo y el proyecto o la librería de usuario se guardan y se sincronizan automáticamente sin la interacción del usuario. El guardado de un objeto modificado en Control FPWIN Pro7 se refleja en una actualización instantánea del archivo del objeto correspondiente en la copia de trabajo pertinente. Si el usuario actualiza su copia de trabajo local con los últimos cambios guardados en el repositorio de proyectos o librerías de usuario, Control FPWIN Pro7 (normalmente) traslada estos últimos cambios de forma automática al proyecto o librería de usuario abierto/a.

Por otro lado, la transferencia de nuevos datos desde el repositorio de proyectos o librerías a la copia de trabajo local ("actualizar") y la introducción de datos modificados desde la copia de trabajo al repositorio de proyectos o librerías ("confirmar") se realiza manualmente fuera de Control FPWIN Pro7, ya que Control FPWIN Pro7 solo reconoce copias de trabajo (que son independientes de cualquier software externo utilizado) y no el repositorio de proyectos o librerías ni el software de control de versiones externo que el usuario decida utilizar.

Con un software de control de versiones independiente, p. ej., Apache subversion o TortoiseSVN (no disponible con la instalación de Control FPWIN Pro7), se puede utilizar el conjunto completo de funciones de control de versiones para el intercambio de datos en ambas direcciones entre la copia de trabajo y el repositorio correspondiente para este proyecto o librería. Sin embargo, esto tiene que hacerse manualmente fuera de Control FPWIN Pro7. Consultar los archivos de ayuda correspondientes de la herramienta de control de versiones seleccionada.

Restricciones

No todas las porciones de datos separadas de un proyecto de Control FPWIN Pro7 constituyen un objeto independiente y separable en la copia de trabajo, ya que algunas porciones de datos son demasiado pequeñas o tienen demasiadas interdependencias. Analizar o planificar previamente en el equipo de compañeros cómo manejar datos especiales como los ajustes del proyecto, especialmente cuando se utilizan contraseñas de seguridad o la lista de tareas.

Los objetos separables, como POUs, DUTs y tareas, se manejan de la siguiente manera:

Los siguientes objetos y sus subnodos no se consideran separables porque dependen del PLC seleccionado:

Pertenecen y están representados por el archivo singleton "Project.asc" para el objeto raíz del proyecto en la copia de trabajo y en el repositorio de proyectos.

El objeto Código de Programa no tendrá control de versiones porque cambia cada vez que se modifican otros objetos y se vuelve a compilar el proyecto.

Entender el concepto de control de versiones

Para identificar, estructurar y separar los objetos separables en el repositorio de proyectos (y en la copia de trabajo local), los objetos (nodos) del navegador del proyecto de Control FPWIN Pro7 se mapean en una estructura de carpetas/archivos, que es también el requisito previo para un sistema de control de versiones externo.

Esta estructura de carpetas/archivos es el destino de los datos cada vez que se guarda el proyecto en Control FPWIN Pro7. Es también la estructura que debe adoptar un sistema de control de versiones externo. Esta estructura debe contener al menos todos los datos e información que el usuario haya añadido explícitamente o modificado en el proyecto o librería.

A su vez, esta estructura también tiene que ser el origen del proceso de actualización inversa (importación) para crear o modificar un proyecto abierto de Control FPWIN Pro7 con las librerías de usuario contenidas (estén o no estén bajo control de versiones).

Cuando los usuarios creen un proyecto, esta actualización se realizará con todos los archivos válidos y reconocidos de la estructura de carpetas/archivos en un orden determinado.

Cuando los usuarios modifican o actualizan un proyecto, la importación también puede hacerse de forma incremental o solo con un subconjunto de archivos de objetos separables o incluso un único archivo, pero en un proyecto abierto de Control FPWIN Pro7. Normalmente, esto reemplaza por completo la revisión del mismo objeto en este proyecto.

Diferencias en la gestión de proyectos con y sin control de versiones

Cuando se pone un proyecto bajo control de versiones, se dan las siguientes diferencias:

Volver a abrir un proyecto con control de versiones anterior

Cuando se desactiva el control de versiones de un proyecto, la copia de trabajo no se elimina. De este modo, cuando se activa de nuevo el control de versiones para este proyecto, Control FPWIN Pro7 borra la copia de trabajo y crea una completamente nueva a partir del proyecto actual si se confirma que la antigua copia de trabajo se puede borrar.

Modificado el: 2023-11-23Comentarios sobre esta páginaLínea directa de Panasonic