REPOSITORIOS
Ing. Ismael Castañeda Fuentes, MSc
Grupo de Investigación UNBD
Universidad Nacional de Colombia
Marzo de 2011
Objetivos
Conocer las ventajas de usar un repositorio, en el desarrollo
de un proyecto.
Aprender los conceptos básicos del repositorio
Aprender a usar el repositorio
El software es dinámico
Cambios en el software por:
Corrección de defectos
Desarrollo iterativo
Cambios de ambiente
Cambios solicitados por el cliente/usuario
Los cambios en el software pueden generan cambios en:
Requerimientos y especificaciones
Modelos de análisis, diseño, …
Documentación
Código fuente
Código ejecutable
Casos de prueba
Gestión de cambios - Procedimiento
Solicitud de cambio
Aprobación/rechazo del cambio
Asignación del trabajo
Aseguramiento de calidad
Baja de versión inicial
Alta de la nueva versión
Auditoría
Comunicación a los afectados
Servidor de archivos versionados
Servidor de archivos con características extras
Cada archivo tiene asociado un historial de modificaciones
Los cambios en un archivo pueden deshacerse o recuperarse hasta
cualquier punto en su historial
Recuerda la estructura del sistema de archivos en cualquier punto
del historial (directorios)
Es posible ver cualquier archivo tal como se encontraba en cualquier
punto del historial
Versionamiento
El control de versiones se realiza principalmente en la
industria informática para controlar las distintas versiones del
código fuente
Los mismos conceptos son aplicables a otros ámbitos, no
sólo para código fuente sino para documentos, modelos,
imágenes …
Desarrollo de un proyecto
Ing 1
1
2
Ing 2
Ing 3
3
1
1
2
3
4
5
6
7
8
2
3
4
5
Desarrollo de un proyecto
Ing 1
1
2
Ing 2
Ing 3
3
1
1
2
4
5
6
7
2
3
Versión Alfa 1
8
3
4
5
Versión Beta1
Release 1
Desarrollo de un proyecto
Ing 1
1
2
4
5
6
7
8
1.1
Ing 2
Ing 3
3
1
1
2
2
9
1.2
10
1.3
3
3
4
5
Versión 2
Versión 1
Versión 3
Error reportado
sobre la Versión 1
Control de versiones
Manual
Administrando directorios
Copias de seguridad
Usando comprimidos, …
Con herramientas de software – Repositorios
CVS (Concurrent Versions System )
Subversion SVN
Mercurial
Git
ClearCase
BitKeeper, Select, …
Usando servicios que facilitan uso de repositorios:
SourceForge (http://repository.sourceforge.net)
Google Code (www.//code.google.com)
Projec Kenai (http://kenai.com)
CodePlex (http://www.codeplex.com)
Google Code
Project Kenai
Source Forge
CodePlex
Repositorios
Repositorio
Sitio centralizado donde se almacena y mantiene información
digital
El repositorio debe permitir
Agregar
Modificar de forma concurrente
Reunir modificaciones en una sola
Controlar versiones alternas
Comparar
Repositorio Subversion
Sistema para control de versiones
Subversion - Formas de acceso
A través del cliente Tortoise
A través del servidor
A través de Internet, cuando la persona está en un computador
que no es de su uso personal, por ejemplo cuando se va a un
café Internet como mecánica en una sola vía
Por medio de un IDE
Tortoise SVN - CHECKOUT
En el explorador de Windows:
En un directorio vacio
Clic derecho
Copia inicial
Ejemplo de URL para copia inicial:
https://168.176.36.28:4443/piga
Tortoise SVN - CHECKOUT
Acceso al Repositorio
Update
Repositorio
Copia
del
Repositorio
Usuario
Acceso al Repositorio
Commit
Repositorio
Información
local
Usuario
Lectura compartida al Repositorio
Repositorio
Archivo A
Archivo A
Archivo A
Pedro
María
Trabajo simultáneo en el cliente
Repositorio
Archivo A
Archivo A
Archivo A
Pedro
María
Escritura al Repositorio
Repositorio
Archivo A
¡Problema!
X
Archivo A
Archivo A
Pedro
María
Escritura controlada en el Repositorio 1 de 5
Repositorio
Archivo A
Bloquea
Pedro
Archivo A
Pedro
Escritura controlada en el Repositorio 2 de 5
Repositorio
Archivo A
Bloquea
Pedro
X
Archivo A
¡Problema!
Pedro
María
Escritura controlada en el Repositorio 3 de 5
Repositorio
Archivo A
Archivo A
Pedro
Escritura controlada en el Repositorio 4 de 5
Repositorio
Archivo A
Bloquea
María
Archivo A
Archivo A
Pedro
María
Escritura controlada en el Repositorio 5 de 5
Repositorio
Archivo A
Archivo A
Archivo A
Pedro
María
Mezcla (Merge) 1 de 4
Repositorio
Archivo A
Archivo A
Pedro
Archivo A
María
Mezcla (Merge) 2 de 4
Repositorio
Archivo
ArchivoAA
¡Problema!
X
Archivo A
Archivo A
Pedro
María
Mezcla (Merge) 3 de 4
Repositorio
Archivo
ArchivoAA
Archivo A
Pedro
Archivo A
Archivo A
María
Mezcla (Merge) 4 de 4
Repositorio
Archivo
Archivo
Archivo
AAA
Archivo A
Archivo A
Pedro
María
Update
Repositorio
Archivo
Archivo
Archivo
AAA
Archivo A
Pedro
Archivo A
María
Tortoise SVN
Iconos Internet Explorer
La carpeta en la copia de trabajo está sin
modificaciones y sin conflictos
Esto no significa que la copia de trabajo
esté actualizada a la última versión
Hay cambios pendientes por subir
Hay archivos en conflicto.
Tortoise SVN
Tortoise SVN - Operaciones de usuario
Checkout
Descargar un proyecto del repositorio a una carpeta local
Update
Actualizar la copia de trabajo.
Al actualizar, se muestra un listado con los archivos nuevos,
eliminados o modificados, con una marca al comienzo de cada
uno:
A – Se ha añadido un archivo (quizás por otro usuario)
Tortoise SVN - Operaciones de usuario
C – Un archivo que fue modificado en la copia de trabajo, fue
modificado por otro usuario, y ha quedado en conflicto.
G - Un archivo que fue modificado en la copia de trabajo, fue
modificado por otro usuario, y se ha combinado
satisfactoriamente (sin conflicto)
U – Un archivo que cambió se ha actualizado.
D – Un archivo se ha borrado
Resolved
Marcar como resuelto el conflicto
Tortoise SVN - Operaciones de usuario
Add
Agregar un archivo o carpeta
Delete
Borrar un archivo o carpeta
Log
Mostrar información acerca de las versiones de una carpeta o archivo
Lock
Bloquear cambios sobre un archivo
Tortoise SVN - Operaciones de usuario
Copy
Copiar
Move
Mover
mkdir
Crear un directorio
Diff
Mostrar la diferencia entre la copia local y la base.
Mostrar la diferencia de un archivo entre una revisión y otra
Tortoise SVN - Operaciones de usuario
Commit
Subir los cambios hechos en la copia de trabajo al repositorio. Esto
genera una nuevo número de revisión en el repositorio. Puede
fallar si los archivos que se desean subir han sido modificados por
otro usuario. En este caso se deb hacer primero update y luego
resolver el posible conflicto.
Revert
Revertir cambios hechos en copia de trabajo
Tortoise SVN - Operaciones de usuario
stat
Información acerca del estado de los archivos en la carpeta local:
C – En Conflicto
M – Modificados
A – Añadidos
D – Borrados
L – Bloqueados
? – No versionado
! – Archivo faltante (Eliminado , sin usar el comando adecuado –
delete)
Ver mas con svn help stat
SVN - Formas de acceso
A través del cliente Tortoise
A través de Internet, cuando la persona está en un
computador que no es de su uso personal, por ejemplo
cuando se va a un café Internet como mecánica en una
sola vía. (Cuidados que hay que tener)
A través del servidor
SVN - Acceso por Internet
Escribir la dirección
https://168.176.36.28:4443/piga/
Hacer clic en continue to this
website (not recommended)
Digitar el usuario y contraseña
de acceso al repositorio.
SVN - Acceso por Internet
SVN - Seguridad
Acceso por HTTPS
Acceso sólo a usuarios registrados
Agrupación de usuarios
Permisos por usuario y por grupos
Lectura exclusivamente
Lectura y escritura
Ninguno
SVN - Buenas prácticas
Antes de comenzar a trabajar, actualizar la copia de trabajo
Resolver un posible conflicto revisando los cambios de la nueva
versión e incluyendo los nuevos
Evitar simplemente borrar archivo en conflicto y reemplazarlo
por el propio. Con esto se ignoran los cambios hechos por
alguien
Dejar un log descriptivo con cada nueva versión
Tortoise SVN - Comparación
Referencias
Tortoise SVN - Comparación
Tortoise SVN - Comparación
PowerDesigner - Comparación
SVN – IDE’s
En desarrollo, cuando se están haciendo
programas, es muy práctico trabajar con
un IDE e integrarlo con los repositorios
Eclipse con Subclipse
NetBeans
Descargar

presentacion_subversion_v4