You are on page 1of 8

Programación Avanzada (SIS457)

Sistemas de Control de Versiones


Lucio Marcelo Quispe Ortega
¿Qué es un Sistema de Control de Versiones?
● Es un sistema de controla y organiza cronológicamente cada uno de las
revisiones que se realizan sobre uno o varios archivos.
● ¿Y qué es una revisión?
○ Es un cambio (modificación) realizada al archivo, por ejemplo añadir una línea de código,
cambiar el nombre a una variable, borrar la declaración de una función, etc.

Revisión 1
Revisión 2
¿Para qué sirve un SCV?
● Permite mantener una copia de seguridad (backup) de todas las modificaciones
realizadas a un archivo. Lo cual nos facilita la tarea de deshacer algo si está mal.
● Es utilizado para desarrollo de proyectos de Software, sobretodo para trabajo de
equipos de programadores, que necesitan centralizar y coordinar los cambios que
realizan.
● Monitorea los cambios realizados, identificando las líneas de código añadidas,
modificadas y eliminadas.
● Permite movernos de una revisión a otra (viajar en el tiempo), identificando además los
cambios que se hicieron.
● Permite administrar distintas versiones especializadas (sistemas a medida por cliente)
● Permite mezclar cambios realizados en un mismo archivo por distintos programadores,
donde además se encarga de resolver conflictos.
Tipos de SVC
● Locales
○ Un método de control de versiones usado por
mucha gente es copiar los archivos a otro
directorio (quizás indicando la fecha y hora en que
lo hicieron)
○ Este enfoque es muy común porque es muy
simple, pero también 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.
Tipos de SVC
● Centralizados
○ El siguiente gran problema que se encuentra la
gente es que necesitan colaborar con
desarrolladores en otros sistemas.
○ Para solventar este problema, se desarrollaron los
sistemas de control de versiones centralizados.
○ Estos sistemas, tienen un único servidor que
contiene todos los archivos versionados, y varios
clientes que descargan los archivos desde ese
lugar central.
○ Durante muchos años éste ha sido el estándar
para el control de versiones
○ Ejemplos: CVS, Subversion o Team Foundation
Server
Tipos de SVC
De acuerdo a su arquitectura:

● Distribuidos:
○ No existe un servidor sino más bien todas las
entidades actúan como clientes y servidores
○ Cada una de las entidades maneja un
repositorio individual, que a su vez puede ser
almacenado en cualquier otra entidad.
○ Por lo tanto: el repositorio puede ser local o
remoto.
○ Ejemplos: Mercurial y Git
Sistemas Centralizados vs Sistemas Distribuidos
● Ventajas de los Sistemas Distribuidos
○ No requiere estar conectado al servidor SVC.
○ Si cae una entidad, se puede seguir trabajando
○ La información y los cambios están muy
replicados.
○ El servidor remoto requiere menos recursos
que un servidor centralizado, ya que gran parte
del trabajo lo realizan los repositorios locales
○ Nos permite manejar distintas versiones del
proyecto al mismo tiempo (ramas: dev, test,
prod)
Sistemas Centralizados vs Sistemas Distribuidos
● Ventajas de los Sistemas Centralizados
○ Existen un mayor control de los cambios
realizados por el equipo.
○ Las revisiones se identifican con un número de
versión.

You might also like