SIU-Guarani/Version3.13.0/SVN

De SIU
Saltar a: navegación, buscar

SVN

SVN es un sistema de control de versiones centralizado. Trabaja con un repositorio centralizado de archivos en el cual todos los desarrolladores suben las modificaciones y nuevos archivos desarrollados y del cual adquieren los cambios subidos por otros desarrolladores del equipo. El concepto es simple: El repositorio tiene la ultima versión del código del proyecto. Los desarrolladores, periódicamente ejecutan un "svn update" para actualizar su carpeta local con los cambios que se hayan realizado en el repositorio (las nuevas versiones) y cuando su tarea de desarrollo esta concluida, se versionan/suben/commitean (svn commit) los cambios realizados sobre los archivos del proyecto. De esta forma, el repositorio contiene la ultima versión del proyecto y cada desarrollador localmente, tiene su versión propia que normalmente consiste de la versión del repositorio con algunos archivos modificados. Hasta que un desarrollador no suba los archivos modificados, el resto del equipo no ve esos cambios. De esta manera, y dado que al actualizar o subir archivos modificados al repositorio el sistema advierte sobre conflictos en el caso en que se haya modificado algún archivo en común con otro miembro del equipo, se controla y ordena la forma de desarrollo conjunta sobre un mismo proyecto.

Lo que complica el trabajo en conjunto entre desarrolladores de un mismo equipo, es el trabajo sobre metadatos. Los metadatos, son archivos que guardan configuraciones sobre objetos nuevos o modificados que forman parte de las operaciones del sistema. Específicamente, representan la copia de las configuraciones de los objetos del sistema de la base Toba del proyecto en el sistema de archivos. Cada desarrollador comparte con el resto del equipo los cambios realizados sobre objetos del sistema o los nuevos objetos desarrollados a través de los archivos de metadatos. La dificultad radica en que una vez que un desarrollador adquiere nuevos cambios del repositorio en estos archivos, debe generarlos en su BD local de objetos. Si el objeto no fue modificado localmente, este cambio es trivial. Pero si hay conflictos, no es tan sencillo de solucionar como un conflicto en una linea de código de un archivo PHP del proyecto. Dado que ese conflicto es muy complejo de solucionar a nivel de BD, se soluciona a nivel de archivos a través del SVN.