ERP

Sistemas de control de versiones

En un entorno donde existe diversos desarrolladores de código fuente, el control de la concurrencia, así como disponer del histórico de modificaciones realizadas sobre los distintos archivos es muy importante. Con un sistema de control de versiones puedes revertir la situación de ciertos ficheros (incluso el proyecto completo) a estados anteriores, realizar comparativas entre las distintas versiones, localizar desde cuando se está produciendo un error, determinar el responsable del error, disponer de copias de seguridad de esos mismos archivos, etc.

Dos arquitecturas típicas son las distribuidas y las centralizadas. Los distribuidos son más habituales en grandes proyectos donde los desarrolladores se encuentran en múltiples localizaciones, se da la necesidad de replicar los repositorios y donde se producen múltiples ramas que terminarán (o no) fusionándose con la rama principal. Las centralizadas, por el contrario, son más habituales en pequeñas empresas y/o proyectos donde existe una mayor necesidad de trabajo en equipo.

Desde mi punto de vista, y pensando en la apuesta por el desarrollo de ERP sectorizado y vertical, el modelo de control de versiones centralizado me parece más eficaz, si bien con un servidor replicado que pueda entrar en uso inmediatamente tras una caída generalizada del sistema. Puesto que existe un equipo de trabajo concentrado en una misma ubicación física, no es un problema una caída de internet, el número de ramas puede ser controlado, el versionado es común, y el mantenimiento se puede realizar de forma centralizada.

quien_necesita_git2

Ver fuente

En otras situaciones podría ser más necesario el control de versiones distribuido: ubicación de los desarrolladores en todo el mundo, múltiples réplicas del proyecto, falta de recursos económicos para instalar un servidor y mantenerlo, etc.

En el mercado podemos encontrar múltiples sistemas de control de versiones, si bien nos centraremos en dos de los más conocidos, CVS y Subversion. Veamos algunas diferencias:

[bd_table]

CVS Subversion (SVN)
Código Abierto  √  √
Licenciamiento GNU GPL Apache/BSD
Números de revisión Por archivo Por cada commit
Commits Hasta ejecutarlo (problemas por tanto si se producen bloqueos) Continuos y atómicos
Archivos binarios Cada revisión se almacena por separado, ocupando mucho espacio Los archivos, sean de texto o binarios, se almacenan en binario (y se compara en binario)
Directorios No realiza seguimiento de cambios por directorio Seguimiento y versionado de éstos
Renombrado archivos No lo admite ni permite rastrear su historial de cambios una vez renombrado Permite conservar el historial
Admite Metadatos  √
Abrir ramas Costosas proporcionalmente al número de archivos Las ramas son continuas al ser directorios del sistema de archivos
Propagación cambios a repositorios padres
Web http://www.cvshome.org/ http://subversion.apache.org/

[/bd_table]

Parece que CVS se ha quedado estancado en los últimos años. Particularmente prefiero Subversion, pues además, admite fuentes también en binario, por lo que parece una herramienta más idónea tanto por capacidad de almacenamiento como de comparación.

Recibe nuevos artículos mediante suscripción por e-mail, RSS o Feedly
Seguir en Feedly
 

Sobre Sergio Martínez

Dirección desarrollo e implantación ERP en Daemon4 Socialmedia, TIC, IDi, e-commerce, 2.0... Blogger en https://mundoerp.com

Un comentario

  1. Excelente artículo sobre el control de versiones.
    Los invito a leer nuestro artículo acerca de las principales excusas para no usar el control de versiones por parte de los desarrolladores, se sorprenderán.

    Saludos cordiales!

x

Check Also

¿Conoces las diferencias entre ERP y MES?

el Software ERP diseña y modela un plan empresarial para la fábrica, mientras que un sistema MES utiliza ese plan empresarial para adaptarlo a los recursos, tiempos y posibilidades de los sistemas y personal de la empresa, consiguiendo un resultado óptimo adaptado y basado en los medios de la planta.

Diferencias entre ERP online y on premise

Ventajas de elegir un ERP en la nube (cloud) frente a un ERP on-premise: accesibilidad, flexibilidad, seguridad, actualizaciones, ...

Integración de un CRM con otros sistemas de información

Al igual que el CRM, el ERP es un sistema que hace uso de una cantidad masiva de información, con la diferencia de que el CRM ejerce generalmente las funciones externas de cara al cliente, o front-office

Las pruebas de seguridad son una parte vital de la compra de software

Los proveedores de software están obligados a realizar pruebas de seguridad de su software, así como adquirir compromisos de solución de vulnerabilidades.

Métodos existentes para evaluación y selección de sistemas de gestión

Procedimientos o metodologías empleados para la evaluación y selección de un Sistema de Gestión