Control de Versiones

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

   

   

Nombre: 

Abel Albuez Sanchez

Matricula: 

2018-1695 

Materia: 

Administración de Configuración 

Carrera: 

Ingeniería de Software 

Profesor: 

Omar Antonio De la Cruz 

Tema: 

Control de versiones
Se llama control de versiones a la gestión de los diversos cambios que se realizan
sobre los elementos de algún producto o una configuración de este. Una versión,
revisión o edición de un producto, es el estado en el que se encuentra el mismo en un
momento dado de su desarrollo o modificación.

Aunque un sistema de control de versiones puede realizarse de forma manual, es muy


aconsejable disponer de herramientas que faciliten esta gestión dando lugar a los
llamados sistemas de control de versiones o VCS (del inglés Version Control System).
Estos sistemas facilitan la administración de las distintas versiones de cada producto
desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para
algún cliente específico). Ejemplos de este tipo de herramientas son entre otros: CVS,
Subversion, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, SCCS,
Mercurial, Perforce, Fossil SCM, Team Foundation Server.

El control de versiones se realiza principalmente en la industria informática para


controlar las distintas versiones del código fuente dando lugar a los sistemas de control
de código fuente o SCM (siglas del inglés Source Code Management). Sin embargo,
los mismos conceptos son aplicables a otros ámbitos como documentos, imágenes,
sitios web, etc.

Para casi todos los proyectos de software, el código fuente es como las joyas de la
corona, un activo valioso cuyo valor debe protegerse. Para la mayoría de equipos de
software, el código fuente es un repositorio del conocimiento de valor incalculable y de
la comprensión sobre el dominio del problema que los desarrolladores han recopilado y
perfeccionado con un esfuerzo cuidadoso. El control de versiones protege el código
fuente tanto de las catástrofes como del deterioro casual de los errores humanos y las
consecuencias accidentales.

Los desarrolladores de software que trabajan en equipos están escribiendo


continuamente nuevo código fuente y cambiando el que ya existe. El código de un
proyecto, una aplicación o un componente de software normalmente se organiza en
una estructura de carpetas o "árbol de archivos". Un desarrollador del equipo podría
estar trabajando en una nueva función mientras otro desarrollador soluciona un error no
relacionado cambiando código. Cada desarrollador podría hacer sus cambios en varias
partes del árbol de archivos.

Los sistemas de control de versiones (VCS) han experimentado grandes mejoras en las
últimas décadas y algunos son mejores que otros. Una de las herramientas de VCS
más populares hoy en día se llama Git. Git es un VCS distribuido, una categoría
conocida como DVCS, que explicaremos con más detalle después. Al igual que
muchos de los sistemas de VCS más populares disponibles hoy en día, Git es gratuito
y de código abierto. Independientemente del nombre que tengan, o del sistema que se
utilice, las principales ventajas que deberías esperar del control de versiones son las
siguientes:

1. Un completo historial de cambios a largo plazo de todos los archivos. Esto


quiere decir todos los cambios realizados por muchas personas a lo largo de los
años. Los cambios incluyen la creación y la eliminación de los archivos, así
como los cambios de sus contenidos.
2. Creación de ramas y fusiones. Si se tiene a miembros del equipo trabajando al
mismo tiempo, es algo evidente; pero incluso las personas que trabajan solas
pueden beneficiarse de la capacidad de trabajar en flujos independientes de
cambios. La creación de una "rama" en las herramientas de VCS mantiene
múltiples flujos de trabajo independientes los unos de los otros al tiempo que
ofrece la facilidad de volver a fusionar ese trabajo, lo que permite que los
desarrolladores verifiquen que los cambios de cada rama no entran en conflicto.
3. Trazabilidad. Ser capaz de trazar cada cambio que se hace en el software y
conectarlo con un software de gestión de proyectos y seguimiento de errores
como Jira, además de ser capaz de anotar cada cambio con un mensaje que
describa el propósito y el objetivo del cambio, no solo te ayuda con el análisis de
la causa raíz y la recopilación de información. Tener el historial anotado del
código a tu alcance cuando estás leyendo el código, intentando entender lo que
hace y por qué se ha diseñado así, puede permitir a los desarrolladores hacer
cambios correctos y armoniosos que estén en línea con el diseño previsto a
largo plazo del sistema.

Sistemas de Control de Versiones Locales


Un método de control de versiones, usado por muchas personas, es copiar los archivos
a otro directorio (quizás indicando la fecha y hora en que lo hicieron, si son ingeniosos).
Este método es muy común porque es muy sencillo, pero también es tremendamente
propenso a errores. Es fácil olvidar en qué directorio te encuentras y guardar
accidentalmente en el archivo equivocado o sobrescribir archivos que no querías.

Para afrontar este problema los programadores desarrollaron hace tiempo VCS locales
que contenían una simple base de datos, en la que se llevaba el registro de todos los
cambios realizados a los archivos.
Una de las herramientas de control de versiones más popular fue un sistema llamado
RCS, que todavía podemos encontrar en muchas de las computadoras actuales.
Incluso el famoso sistema operativo Mac OS X incluye el comando rcs cuando instalas
las herramientas de desarrollo. Esta herramienta funciona guardando conjuntos de
parches (es decir, las diferencias entre archivos) en un formato especial en disco, y es
capaz de recrear cómo era un archivo en cualquier momento a partir de dichos
parches.
Sistemas de Control de Versiones Centralizados
El siguiente gran problema con el que se encuentran las personas es que necesitan
colaborar con desarrolladores en otros sistemas. Los sistemas de Control de Versiones
Centralizados (CVCS por sus siglas en inglés) fueron desarrollados para solucionar
este problema. Estos sistemas, como CVS, Subversion y Perforce, tienen un único
servidor que contiene todos los archivos versionados y varios clientes que descargan
los archivos desde ese lugar central. Este ha sido el estándar para el control de
versiones por muchos años.

Sistemas de Control de Versiones Distribuidos


Los sistemas de Control de Versiones Distribuidos (DVCS por sus siglas en inglés)
ofrecen soluciones para los problemas que han sido mencionados. En un DVCS (como
Git, Mercurial, Bazaar o Darcs), los clientes no solo descargan la última copia
instantánea de los archivos, sino que se replica completamente el repositorio. De esta
manera, si un servidor deja de funcionar y estos sistemas estaban colaborando a través
de él, cualquiera de los repositorios disponibles en los clientes puede ser copiado al
servidor con el fin de restaurarlo. Cada clon es realmente una copia completa de todos
los datos.

En conclusión, es importante mantener un control en las versiones de las aplicaciones,


para asegurar un correcto proceso de cambio y mantener cierta estabilidad a lo largo
del proceso de evolución de un software. Con esto se previenen diversos escenarios
que pueden afectar de manera negativo el funcionamiento de una aplicación, por
ejemplo, al modificar líneas de código utilizadas en procesos claves o que no requerían
de algún cambio, evitar tener en producción actualizaciones que no funcionan de la
forma prevista y ayudando a saber qué diferencias hay entre una versión y otra, al
momento de revisar el código que será utilizado.

También podría gustarte