Académique Documents
Professionnel Documents
Culture Documents
1. DATOS ACADEMICOS:
Nombre Asignatura
:
Tema
:
Docente
:
Ingeniera de software II
Control de versiones
Manuel Jess Ibarra Cabrera
2. PROCEDIMENTAL
- Realiza programas utilizando el control de versiones de software, tanto en plataforma
Windows como en Linux.
3. SESION N 01 (Tiempo Estimado: 02 Horas)
El trabajo consiste en crear un servidor subversin y manipularlo con un cliente
TortoiseSVN
4. MARCO TERICO
Introduccin
- Alguna vez te ha sucedido que cuando estabas haciendo un programa (ejm.
Multiplicar 2 matrices) lo tenias todo bien hecho y funcionando, y de repente
quisiste modificar algo y ya no funcion!... y quisiste volver a la versin anterior
y por ms que intentaste con Ctrol-Z no lo lograste!
- Alguna vez te ha pasado que cuando estabas haciendo un programa, y tenias algo
funcional, y tal vez modificaste algo y grabaste algo que no debas haberlo
hecho y ya no puedes volver a la versin anterior.
- Alguna vez te ha pasado que al hacer un programa entre varios compaeros,
decidieron juntar los programas y resulta que las funciones (o procedimientos)
de uno de ellos sobrescribi al del otro y finalmente no lograron juntarlo!.
Ante los problemas anteriores, hoy en da se maneja un tema muy importante como
es el del control de versiones de los programas (en general de cualquier
documento).
Control de versiones
Definicin
Un sistema de control de versiones (o sistema de control de revisiones) es una combinacin de
tecnologas y prcticas para seguir y controlar los cambios realizados en los ficheros del
proyecto, en particular en el cdigo fuente, en la documentacin y en las pginas web.
Porque usarlo?
La razn por la cual el control de versiones es universal es porque ayuda virtualmente en todos
los aspectos al dirigir un proyecto: comunicacin entre los desarrolladores, manejo de los
lanzamientos, administracin de fallos, estabilidad entre el cdigo y los esfuerzos de desarrollo
experimental y atribucin y autorizacin en los cambios de los desarrolladores. El sistema de
control de versiones permite a una fuerza coordinadora central abarcar todas estas reas. El
ncleo del sistema es la gestin de cambios: identificar cada cambio a los ficheros del proyecto,
1
anotar cada cambio con meta-data como la fecha y el autor de la modificacin y disponer esta
informacin para quien sea y como sea. Es un mecanismo de comunicacin donde el cambio es
la unidad bsica de informacin.
Ejemplos de Herramientas
Ejemplos de este tipo de herramientas son entre otros
- CVS
- Subversion
- SourceSafe
- ClearCase
- Darcs
- Bazaar
- Plastic SCM
- Git,
- Mercurial
- Perforce
5. TRABAJO PRCTICO
Ejemplo 1: Subversion
I) Instalar TortoiseSVN
Solicita el instalador e instlalo
II) Crear el repositorio SERVER
a. Crear una carpeta miweb en el escritorio
b. Hacemos clic derecho sobre ella y buscamos la opcin [Create repository here], que
se encuentra dentro del tem [TortoiseSVN]. La herramienta nos mostrar una
ventana donde tendremos que elegir el tipo de repositorio.
III)
Esto es mi carpeta
local de trabajo
Luego OK
Luego OK
5
Modifica el archivo index.html, agrega ms archivos, etc., y juega todo lo que quieras
De aqu en adelante, el proceso de trabajo ser similar: hacer un
checkout de la ltima versin en el repositorio, realizar cambios en
nuestra copia privada, luego hacer un update y, por ltimo, un
commit. En la prctica, y con grupos de trabajo, el proceso no es tan
sencillo, ya que si hay inconsistencias entre los archivos, tendremos
que combinarlos (lo que en la jerga se conoce como merge), lo cual a
veces puede resultar en ms de un dolor de cabeza. Pero, claro, todo
esto se aprende durante la marcha.
6. TRABAJO DE INVESTIGACIN
1) Averigua en cmo usar el comando DIFF
2) Crea una pgina web de tu grupo, El jefe de proyecto debe decir que partes debe hacer cada
uno, por ejemplo: Pgina principal, integrantes, proyectos, buscadores ,contactos, etc. Cada
uno debe trabajar localmente y luego juntarlo en el servidor.
3) El mismo ejercicio anterior pero utilizando http://xp-dev.com
Ayuda:
a) Ir a http://xp-dev.com/
d) Crear un repositorio