Administración de la configuración (SCM) Introducción Control de versiones Analisis y diseño USAC Por: Víctor Orozco
Agenda Administración de la configuración Herramientas SCM Subversion – Configuración Subversion - Uso
Administración de la configuración La administración de la configuración es la disciplina que se encarga de controlar la evolución de los sistemas de información a través de la construcción de diversas versiones de los mismos
Antes de SCM Caos
Herramientas SCM Identificacion de la configuracion (que codigo) Control de la configuracion (que version) Control de estado (como vamos) Administración de construcción (integración continua) Administracion de procesos (asegurarse que vamos acorde a lo planeado) Administracion de entorno (administracion del hardware y software) Trabajo en equipo (herramientas de comunicación) Bugtracking (asegurarse de que los errores han sido resueltos)
SCM nos brinda... Orden
Sistemas de control de versiones Almacenaje. Cambios. Registro histórico
Herramientas Libres: CVS Subversion Git Bazaar Mercurial Propietarias: Microsoft Source Safe Plastic SCM
Subversion Subversión es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Licencia: Apache/BSD Desarrollador: Collabnet Fuente:Wikipedia
Caracteristicas Las modificaciones (incluyendo cambios a varios archivos) son atómicas. Es centralizado Varios metodos de acceso Multiplataforma
Acceso Local: file:/// Protocolo de archivos de sistema (podemos usarlo en red en combinación con NFS) Remoto: ssh – Encriptado y lento webDAV – El metodo por excelencia (edicion y versionado sobre web, subversion+webDAV+servidor web)
Herramientas de subversion Svn: Herramienta en linea de comandos para la administración de un repositorio. Svnadmin: Herramienta para la administración de repositorios.
Arquitectura
Subversion+WebDAV (debian) Todo como superusuario Instalamos apache y subversion aptitude install subversion subversion-tools aptitude install apache2 aptitude install libapache2-svn Enlazamos apache y subversion a2enmod dav a2enmod dav_svn Creamos nuestro usuario groupadd subversion htpasswd2 /etc/apache2/dav_svn.passwd foo Creamos un repositorio mkdir -p /srv/proyecto svnadmin create /srv/proyecto chown -R www-data:subversion /srv/proyecto chmod -R 770 /srv/proyecto
Subversion+WebDAV (debian) # gedit /etc/apache2/mods-available/dav_svn.conf # /etc/init.d/apache2 restart
Uso basico Importar # svn import proyecto -m "inicio"
Uso basico Check-out # svn checkout proyecto
Uso basico Check-in cambios (commit) # svn commit -m "haciendo cambios" Check-in, nuevos archivos (add) # svn add file_or_dir El add es a nivel local y requiere Un commit
Uso adecuado svn up svn status svn commit Casi todas las GUI hacen este proceso El resto del tiempo seran conflictos
Muy complicado? Administradores graficos *RapidSVN (Multiplataforma) *TortoiseSVN (Integracion con el explorador de windows) *Nautilus+nautilus scripts (sobre gnome) *Integracion con programas de desarrollo como netbeans, eclipse, qtcreator,..., emacs, vim
Facil \o/ ¿Dudas, comentarios, sugerencias?