AVANCE N° 4 Presentación del Repositorio Presentado por: GRUPO N°1 Camargo Bernal Jhon Jairo Contreras Ospina Harold Esteban López Espinosa Julián Mauricio Maestre Torres Javier Hernán Muñoz Sánchez Fernando Pacheco Castro Víctor Uriel Rodríguez Carreño Oscar Leandro Torres Reyes Luis Eduardo Presentado a: Ing. ISMAEL CASTAÑEDA FUENTES Profesor Asociado Departamento de Ingeniería de Sistemas e Industrial Facultad de Ingeniería UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ DEPARTAMENTO DE INGENIERÍA DE SISTEMAS E INDUSTRIAL INGENIERÍA DE SISTEMAS DISEÑO DE BASES DE DATOS BOGOTÁ D.C. 13/04/2011 TABLA DE CONTENIDO 1. Resumen 2. ¿Qué es el control de versiones? 3. ¿Qué es un repositorio? 4. ¿Qué es subversión? 5. Ventajas de utilizar un repositorio 6. El Repositorio 7. ¿Cómo conectar el IDE Netbeans con XP-dev? 8. Herramientas adicionales que ofrece XP-dev 9. Bibliografía 1. Resumen Ahora con la facilidad que nos presta la nube para compartir archivos y manejar información en Internet, es común utilizar herramientas que nos permitan comunicarnos con otras personas para realizar tareas especificas, una de ellas es el manejo de repositorios que nos ayudan a administrar archivos mediante servidores en Internet, los cuales llevan un control de los cambios realizados sobre estos. Estos servidores tienen características que los hacen mas atractivos frente a otros y en esto nos basamos para escoger el nuestro, en este trabajo se mostrará una visión general sobre el control de versiones, el manejo de repositorios y las características del repositorio que estamos utilizando para nuestro proyecto. 2. ¿Qué es control de versiones? El control de versiones es la administración de cambios a documentos, programas y otro tipo de información almacenada en archivos de computador. Es comúnmente usada en desarrollo de software, donde un equipo de personas puede realizar cambios a los mismos archivos. Estos cambios usualmente se identifican por un número o código, denominado número de revisión. Cada revisión esta asociada a un control con la fecha y la persona que realizó el cambio. Estas revisiones pueden ser comparadas, restauradas y en algunos tipos de datos, unidas. 3. ¿Qué es un repositorio? Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos 1. El repositorio es donde los archivos actuales e históricos son almacenados, a menudo estos se mantienen en servidores. En algunos casos también son llamados depósitos, por ejemplo por las herramientas SVK, AccuRev o Perforce. 1 http://es.wikipedia.org/wiki/Repositorio Los depósitos pueden distribuirse utilizando una red informática como Internet o en un medio físico como un disco compacto. Y pueden ser de acceso público, o pueden estar protegidos y necesitar de una autentificación previa. Los depósitos más conocidos son los de carácter académico e institucional.2 4. ¿Qué es subversión? Subversion es un sistema de control de versiones libre. Éste administra archivos y carpetas, y los cambios que hagan sobre estos a través del tiempo. Esto le permite recuperar versiones antiguas de su información, o examinar el historial de como su información ha venido cambiando. Subversion puede funcionar a través de redes lo cual le permite ser usado por personas en diferentes computadores. Les da la capacidad a varias personas de modificar y administrar el mismo conjunto de datos desde sus respectivos equipos. Debido a que el trabajo es versionado, no hay que tener miedo si un cambio incorrecto se hace en la información, ya que solo seria necesario deshacer ese cambio. Algunos sistemas de control de versiones también tienen capacidades de administrar las configuraciones de software (SCM). Estos sistemas tienen muchas características que son específicos a desarrollo de software, como por ejemplo entender nativamente lenguajes de programación y complementar con herramientas de compilación. Subversion no tiene ninguna de estas capacidades, es un sistema general que puede ser usado para administrar cualquier colección de archivos. Existen servicios que proporcionan almacenamiento usando Subversion gratuito para proyectos de software libre: ● ● ● ● ● ● 2 SourceForge XP dev Google Code Project Kenai CodePlex Forja de Conocimiento Libre de la Comunidad RedIRIS de RedIRIS http://es.wikipedia.org/wiki/Subversion Subversión también está siendo adoptado en el mundo corporativo. En un informe 2007 de Forrester Research, reconocía a Subversion como el líder destacado en la categoría de sistema de control de versiones.3 5. Ventajas de usar un repositorio El uso de Subversion ha facilitado no solo la integración de archivos, sino que representa una variedad de ventajas para los equipos de trabajo, a continuación mostraremos las ventajas que se generan a partir de la utilización de subversion. ● Se puede tener un control cronológico de las modificaciones realizadas al trabajo, haciendo que la identificación de cambios sea más fácil. ● Está basado en una metodología de trabajo colectivo y colaborativo de todos los miembros. ● Ayuda a medir no solo la cantidad de trabajo, sino la calidad del trabajo desarrollado ● Se puede tener control y hacer balances de productividad de cada participante. ● Se pueden tener líneas de desarrollos independientes a partir de diferentes versiones (branches) que son generadas a partir de modificaciones a la versión central 6. El Repositorio Para el desarrollo de nuestro proyecto “Mediunal” utilizamos el repositorio llamado “XP dev” (http://www.xp-dev.com/) el cual presta servicio gratuito de almacenamiento y administración de proyectos sobre varias plataformas, entre ellas Netbeans y JDeveloper. 3 http://es.wikipedia.org/wiki/Subversion Este servidor permite el manejo de proyectos tanto de software libre como de software propietario y permite realizar las operaciones básicas sobre archivos que poseen todos los repositorios: Commit, Update, Merge y Delete, acompañadas de algunas operaciones adicionales como el de restaurar el proyecto a una versión anterior, bloquear y desbloquear archivos, realizar una copia idéntica del proyecto a una carpeta de nuestro sistema y forzar una actualización sin prestar importancia a los cambios hechos con anterioridad. Entre otras características XP-dev presta el servicio de manejo de cuentas de usuario para que solo ciertas personas tengan acceso al proyecto, así como manejo de diagramas de eficiencia, foros para resolver preguntas entre los integrantes del equipo de trabajo, foros para asignación de tareas y control sobre el desarrollo de las mismas mediante porcentaje completado y horas estimadas tanto de las que se pronostican como de las que se consumen realmente. XP-dev es una herramienta de uso intuitivo que brinda una interfaz fresca y amigable para el usuario, facilitando su manipulación e interacción con otras herramientas de desarrollo y reduciendo el tiempo y costes que incluye la manipulación de un proyecto de esta índole de otra forma. 7. Cómo conectar el IDE Netbeans con XP-dev Para conectar Netbeans con subversion tenemos que seguir estos pasos: 1. Debemos crear una cuenta en www.xp-dev.com 2. Descargamos e instalamos Netbeans de la página: http://netbeans.org/ 3. Solicitamos al dueño del proyecto permiso para acceso al mismo y poder modificarlo. 4. Nos aseguramos que tenemos acceso al proyecto logándonos en la pagina y dirigiéndonos a la sección de “Proyects” 5. En Netbeans entrar a tools/options/miscelaneous/versioning/subversion 3. Especificamos el directorio de instalación de subversion, si no se encuentra instalado, descargamos el plugin necesario que es solicitado en la misma ventana. 4. Reiniciamos el IDE 5. Para conectarnos con el repositorio vamos en team/subversión/Checkout 6. Escribimos la siguiente URL: http://svn3.xp-dev.com/svn/MediUnalSystems/ Y escribimos el nombre de usuario y contraseña de nuestra cuenta 7. Damos clic en siguiente, seleccionamos la carpeta del proyecto y el numero de la revisión con la que queremos empezar a trabajar: 8. Luego hacemos click en finalizar y hacemos click en open project. 9. Al modificar algún archivo, las líneas agregadas aparecerán al comienzo con un color verde. 10. Cuando se borran un segmento de líneas de un archivo aparece, antes de la primera línea borrada un triangulo rosado. al hacer click sobre este triangulo, se mostraran las líneas de código que se borraron 11. Cuando se modifican alguna línea esta aparece al principio resalta de de color azul 12. Al modificar un archivo, este aparecerá de color azul. Al agregar un archivo nuevo al proyecto este aparecerá de color verde. 13. Para hacer commit o update, lo podemos hacer sobre un archivo o carpeta. Se hace click derecho sobre el archivo o carpeta, seleccionamos la opción subversion y en el menú que se despliega seleccionamos commit o update. 14. Para ver los cambios que hemos hecho sobre el proyecto hacemos click derecho sobre el proyecto y seleccionamos la opción subversion->Show Changes. En la parte inferior del IDE nos aparecerá una lista con los archivos que hemos modificado o agregado, al hacer doble clck sobre alguno, se desplegara la siguiente pantalla: En la parte de la izquierda aparece el archivo como esta en el repositorio y en la derecha aparecerá el archivo como lo tenemos localmente con los cambios resaltados en verde. 15. Es importante tener en cuenta que antes de hacer commit, debemos hacer update, ya que si otra persona ha modificado el proyecto en el repositorio no podremos hacer commit. Al hacer update es muy probable que se presenten conflictos en algunos archivos, para solucionar esto debemos hacer merge a los archivos que presentan confiltos. Al hacer merge a un archivo nos aparecerá una ventana como la anterior pero dividido en tres secciones. En la primera el archivo local, en la segunda el archivo en el repositorio, en la tercera nos aparecerá como quedara el archivo después del merge, este ultimo lo podemos modificar y dejarlo a nuestro gusto. 16. Por último, podemos revertir las modificaciones hechas. Al seleccionar esta opción se nos mostrara el siguiente cuadro en donde debemos seleccionar el tipo de revertimiento que deseamos. Con la primera opción revertimos los cambios hechos localmente, con la segunda opción nos podemos regresar hasta una revisión especifica, con la tercera opción seleccionamos una revisión de inicio y una final. Junto con alguna de estas tres opciones podemos, si deseamos, borrar los archivos o carpetas nuevos que hemos agregado al proyecto. 8. Herramientas adicionales que ofrece XP-dev (reparticion de tareas, foros, etc.) Características más importantes ● ● ● ● ● ● ● ● ● Webhooks Commits via E-mail Acceso SSL seguro Copias de seguridad fuera de sitio en tiempo real y todas las noches Migrar fácilmente desde / hacia otro proveedor Alojamiento directo de archivos usando Jekyll WebDAV habilitado Navegador Online de repositorios Integración con Basecamp, FogBugz, Faro, DoneDone, Fixx y Twitter Gestión de Proyectos ● ● ● ● ● ● ● ● ● Seguimiento del proyecto: iteraciones, historias, tareas y errores Filtros personalizados para los bugs e historial Gráficos de velocidad Acceso SSL seguro Páginas wiki Foros Blogs Archivos adjuntos Subversion: Vincular con confirmación a historial, tareas y bugs Trac Hosting ● Rapidez, seguridad en proyectos Trac ● Enlace de Subversion confirmando entradas Trac ● Cambiar estados Trac directamente de los mensajes de confirmación ● Administrar los permisos de usuario con facilidad ● Toneladas de plugins activados y listos para usar Infraestructura ● Centros de datos seguros y rápidos ● Copias de seguridad en centros de datos redundantes, independientes ● Todos los datos alojados en servidores dedicados con discos duros encriptados 9. Bibliografía Subversion Book - http://svnbook.red-bean.com/ Revision control - http://en.wikipedia.org/wiki/Revision_control XP-dev - http://www.xp-dev.com/ http://es.wikipedia.org/wiki/Subversion http://es.wikipedia.org/wiki/Repositorio