versiones

SISTEMAS DE CONTROL DE VERSIONES ¿QUÉ SON? El control de versiones es un sistema que se encarga de generar un registro

Views 95 Downloads 7 File size 589KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SISTEMAS DE CONTROL DE VERSIONES

¿QUÉ SON? El control de versiones es un sistema que se encarga de generar un registro de todos los cambios que se le realicen a un archivo o conjunto de archivos a través del tiempo; esto con el fin de poder recuperar más adelante versiones anteriores específicas. Estos sistemas son muy usados en la industria del software para llevar un control de las distintas versiones de un código fuente; y son llamados sistemas de control de código fuente. Los sistemas de control de versiones (SVC del inglés System Version Control) han ido evolucionando a lo largo del tiempo y han sido clasificados en tres tipos: Sistemas de Control de Versiones Locales, Centralizados y Distribuidos. [1]

CLASIFICACIÓN CRONOLÓGICA SISTEMAS DE CONTROL DE VERSIONES LOCALES Estos sistemas de control de versiones se caracterizan por dejar de lado el manejo de versiones de manera independiente y pasar a almacenarlas en bases de datos. Este sistema quedó obsoleto rápidamente puesto que el almacenamiento se realizaba en el computador de cada uno de los desarrolladores y no existía una manera eficiente de reproducir el código entre ellos. SISTEMAS DE CONTROL DE VERSIONES CENTRALIZADOS Los sistemas de control de versiones evolucionaron para facilitarle a los desarrolladores el trabajo colaborativo en proyectos específicos. El cambio se basó en pasar del alojamiento de las versiones en los discos duros de los desarrolladores a alojarlas en un servidor. Sin embargo, como es habitual los cambios traen nuevos retos y este no fue la excepción. Estas versiones centralizadas eran muy útiles en proyectos con pocas actualizaciones, sin embargo, resultaba engorroso en proyectos con decenas de colaboradores y con actualizaciones casi a diario, puesto que ningún desarrollador podía seguir adelante hasta que todos los conflictos del proyecto fueran solucionados. SISTEMAS DE CONTROL DE VERSIONES DISTRIBUIDOS La siguiente generación de sistemas de control de versiones trajo consigo de nuevo un cambio en cuanto a la manera de almacenar. Se paso de tener un servidor común de trabajo a darle a cada desarrollador una copia local del proyecto, se creó una red distribuida de repositorios.

Este cambio trajo consigo el hecho de que cada desarrollador podría trabajar a su propio ritmo e ir almacenando a nivel local y sólo realizar una mezcla de conflictos cuando lo requiera, disminuyendo la posibilidad de pérdida de datos o caída de servidor que ocurría con su anterior generación. [2]

VERSIONAMIENTO SEMÁNTICO El versionamiento semántico es un convenio o estándar que se usa para definir la versión de un código, de esta manera todos los desarrolladores y consumidores manejan un lenguaje en común al momento de hablar de las versiones de un código. Existen tres tipos de cambios dependiendo de la naturaleza del cambio generado, que son: Major: Cambio drástico en el software. No es compatible con código hecho en versiones anteriores. Minor: Cambio que añade alguna característica nueva al software o modifica alguna ya existente, pero que sigue siendo compatible con código existente. También cuando marcamos algo como obsoleto. Patch: Cuando arreglamos un bug siendo el cambio retrocompatible. GIT ¿QUÉ ES? Git es un software de control de versiones distribuido el cual está enfocado a la velocidad y manejo de grandes proyectos; diseñado por Linus Torvalds (creador del núcleo Linux). La mayoría de los demás sistemas almacenan la información como una lista decambios en los archivos, mientras que Git modela sus datos más como un conjunto de instantáneas de un mini sistema de archivos. Git es uno de los sistemas de control de versiones distribuidos que más ha crecido en uso en la

última década. Es el utilizado para gestionar el código del kernel de Linux, VLC, Android, Perl, Cairo, Gnome y otros importantes proyectos libres como X.org y Ruby on Rails. [3]

VENTAJAS DE USO    

Permite manejar grandes proyectos Autentificación criptográfica del historial Velocidad extremadamente alta Formato de archivo sencillo y compacto

 

Permite guardar cambios sin estar conectado a internet Menos consumo de recursos para el repositorio remoto

SOFTWARE DE CONTROL DE VERSIONES Existen una gran cantidad de repositorios de software que ponen a disposición de los usuarios sistemas de control de versiones en los cuales puedan alojar sus códigos. Algunos de estos son de software libre, es decir que permiten que personas que deseen colaborar editen el código y otros son de tipo privado, por lo que sólo puede acceder el usuario y sus colaboradores por medio de un código de acceso. Existen tres software de este tipo que se destacan por encima de los demás y son:

GITHUB: Es una plataforma de desarrollo colaborativo que utiliza el sistema de control de versiones Git. Usualmente el código de los proyectos es almacenado de manera pública (software libre), sin embargo, es posible adquirir repositorios privados mediante una cuenta de pago; en donde el pago varía entre los siete y los doscientos dólares al mes, dependiendo del número de repositorios y colaboradores para la cuenta.

SOURCEFORGE: Es un repositorio de código fuente desde el cuál son controlados varios proyectos únicamente de tipo “software libre”. Es capaz de soportar varios sistemas de control de versiones, entre los que se encuentran CVS, Subversion, Git, Bazaar, Mercurial, entre otros.

LAUNCHPAD: Es una plataforma de desarrollo colaborativo de software. Está desarrollada y mantenida por Canonical Ltd, la empresa detrás del desarrollo de Ubuntu. Los repositorios de Launchpad usan Bazaar como sistema de control de versiones. En general este servicio es gratuito, pues va orientado al alojamiento de código de software libre. Sin embargo, obliga a registrarse a la persona que desee enviar reportes de errores o comentarios acerca de los códigos.

REFERENCES [1] González, A., and Martín, I. (2014). Avances en Informática y automática. Salamanca, España: Universidad de Salamanca. Recovered April 03, 2019. [2] Joint Developer. (January 28, 2017). Sistemas de Control de Versiones, qué son y por qué amarlos. A Medium Corporation. Recovered April 01, 2019., from https://medium.com/@jointdeveloper/sistemasde-control-de-versiones-qu%C3%A9-son-y-por-qu%C3%A9-amarlos-24b6957e716e [3] Chacon, S., and Straub, B. (2019). Pro Git: Everything you need to know about Git (Second Edition). New York: Apress. Recovered April 04, 2019.