tutorial de subversion-eclipse

Upload: jose-arturo-palomino-higaonna

Post on 07-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Tutorial de Subversion-Eclipse

    1/20

    FACULTAD DE MATEMTICAS

    Tutorial de Subversion

    Uso del subversion desde el Eclipse y con elcliente TortoiseSVN

    27/08/2009

    Este tutorial tiene como objetivo sensibilizar a los desarrolladores del proyecto Scensy v2.0 en el

    uso de la herramienta Subversion para la administracin de la documentacin y cdigo fuente

    generado en el mismo.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    2/20

    Tutorial de Subversin

    2

    ContenidoRequerimientos ............................................................................................................................. 3

    Uso del TortoiseSVN ...................................................................................................................... 4

    Creando el repositorio con TortoiseSVN ..................................................................................... 4

    Accediendo a un repositorio en una unidad de red..................................................................... 5

    Confirmando sus cambios en el repositorio ................................................................................ 6

    commit ................................................................................................................................... 6

    Progreso de confirmacin .......................................................................................................... 8

    Actualice su copia de trabajo con los cambios de otros .............................................................. 9

    Resolviendo conflictos.............................................................................................................. 10

    Conflictos de ficheros ........................................................................................................... 11

    Conflictos de rbol ............................................................................................................... 12Borrado local, llega un cambio en la actualizacin ................................................................ 12

    Edicin local, entra un borrado en la actualizacin ............................................................... 13

    Eliminacin local, entra una eliminacin en la actualizacin ................................................. 14

    Falta en local, entra un cambio en la fusin .......................................................................... 14

    Uso del Subversive en el Eclipse ................................................................................................... 16

    Crear un proyecto con conexin al repositorio a travs del Subversive ........................ ............. 16

    Commit .................................................................................................................................... 19

  • 8/6/2019 Tutorial de Subversion-Eclipse

    3/20

    Tutorial de Subversin

    3

    Requerimientos

    1. Eclipse2. Instalacin del SVN Tortoise3. Instalacin Subversive en Eclipse

  • 8/6/2019 Tutorial de Subversion-Eclipse

    4/20

    Tutorial de Subversin

    4

    Uso del TortoiseSVN

    La herramienta TortoiseSVN se integra dentro del explorador de Windows. Para usar TortoiseSVN

    es necesario abrir el explorador de Windows y hacer clic con el botn derecho del mouse en

    cualquier carpeta que desees ejecutar algn comando del TortoiseSVN.

    Creando el repositorio con TortoiseSVN

    El men de TortoiseSVN para carpetas no versionadas

  • 8/6/2019 Tutorial de Subversion-Eclipse

    5/20

    Tutorial de Subversin

    5

    1. Abra el explorador de Windows2. Cree una nueva carpeta y llmela por ejemplo scensy_repository3. Haga clic con el botn derecho sobre la carpeta recin creada y seleccione

    TortoiseSVN Crear Repositorio aqu....

    Accediendo a un repositorio en una unidad de red

    Para utilizar TortoiseSVN (o cualquier otro cliente de Subversion), necesita un lugar dondeponer sus repositorios. Puede o bien almacenar sus repositorios de forma local y acceder aellos utilizando el protocolo file://, o puede ponerlos en un servidor y acceder a ellos conlos protocolos http:// o svn://. Los dos protocolos de servidor tambin pueden estarencriptados. Utilice https:// o svn+ssh://, o puede utilizar svn:// con SASL.

    En el ambiente de desarrollo de Scensy, el repositorio estar almacenado remotamente,

    por lo que se utilizar una ruta como ejemplo: svv://192.168.57.152/Devel, para ello esnecesario hacer clic en la opcin SVN Checkout

    Luego de ello capturar la ruta anterior en el campo de texto y hacer clic en el botn con laetiqueta OK y en ese momento iniciara la descarga de la estructura de directorios yarchivos existentes en el repositorio remoto con el status correspondiente.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    6/20

    Tutorial de Subversin

    6

    La estructura de directorios generados tendr la siguiente estructura:

    Una vez creada la estructura se puede trabajar como se acostumbra, creando documentos y

    modificndolos (en este caso cambiar el status del archivo a modificado para posteriormente

    hacerle un commit al repositorio remoto), de tal manera que al final de sus cambios pueda

    subirlos en el repositorio remoto.

    Confirmando sus cambios en el repositorio

    Enviar los cambios que ha hecho al repositorio se conoce como confirmarlos cambios.Pero antes de confirmar tiene que estar seguro de que su copia de trabajo est actualizada.Puede o bien ejecutar SVN Update, o bien ejecutar TortoiseSVN Check formodifications primero, para ver qu se ha cambiado localmente o en el servidor.

    commit

    Si su copia de trabajo est actualizada y no hay conflictos, ya est preparado para confirmarsus cambios. Seleccione los ficheros y/o carpetas que desee confirmar y seleccione SVNcommit

  • 8/6/2019 Tutorial de Subversion-Eclipse

    7/20

    Tutorial de Subversin

    7

    El dilogo de Confirmacin

    El dilogo de confirmacin le mostrar todos los ficheros cambiados, incluso los ficheros

    aadidos, borrados o no versionados. Si no desea que un fichero cambiado se confirme,simplemente desmarque ese fichero. Si desea incluir un fichero no versionado, mrquelopara aadirlo a la confirmacin.

    Los tems que han sido cambiados a una ruta de repositorio diferente tambin se indicanutilizando un marcador (s). Puede haber cambiado algo mientras trabaja en una rama yhabrsele olvidado volver a cambiarlo al tronco. Este es su signo de advertencia!

  • 8/6/2019 Tutorial de Subversion-Eclipse

    8/20

    Tutorial de Subversin

    8

    Progreso de confirmacin

    Tras pulsar OK aparece un dilogo mostrando el progreso de la confirmacin.

    Figura 4.10. El dilogo Progreso mostrando el progreso de una confirmacin

    El dilogo de progreso utiliza una codificacin de colores para resaltar las diferentes

    acciones de confirmacin:

    Azul

    Confirmando una modificacin.

    Prpura

    Confirmando un tem aadido.

    Rojo oscuro

    Confirmando un borrado o un reemplazo.

    Negro

    Todos los dems tems.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    9/20

    Tutorial de Subversin

    9

    Actualice su copia de trabajo con los cambios de otros

    Dilogo de progreso mostrando una actualizacin terminada

    Peridicamente, debera asegurarse de que los cambios que hacen los dems se incorporenen su copia de trabajo local. El proceso de incorporar los cambios desde el servidor a sucopia de trabajo local se conoce como Update. La actualizacin puede hacerse enficheros sueltos, en un conjunto de ficheros, o recursivamente en jerarquas completas de

    directorios. Para actualizar, seleccione los ficheros y/o directorios que desee, haga clic conel botn derecho y seleccione SVN Update en el men contextual del explorador.Aparecer una ventana con el progreso de la actualizacin segn se ejecuta. Los cambiosque los dems hayan hecho se fusionarn con sus ficheros, manteniendo cualquier cambioque haya hecho en los mismos ficheros. El repositorio no se ve afectado por unaactualizacin.

    El dilogo de progreso utiliza un cdigo de colores para resaltar diferentes acciones deactualizacin:

    Prpura

    Nuevo tem aadido a su copia de trabajo

    Rojo oscuro

    tem redundante borrado de su copia de trabajo, o tem faltante reemplazado en sucopia de trabajo.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    10/20

    Tutorial de Subversin

    10

    Verde

    Cambios del repositorio que se han fusionado satisfactoriamente con sus cambioslocales.

    Rojo brillante

    Cambios del repositorio fusionados con sus cambios locales, pero que han dadolugar a conflictos que debe resolver.

    Negro

    tems sin cambios en su copia de trabajo actualizados con una versin ms nuevadesde el repositorio.

    La opcin Update to version puede ser til a veces para ver cmo estaba su proyecto en

    un momento anterior en su historia. Pero en general, actualizar ficheros individuales a unarevisin anterior no es una buena idea, ya que deja su copia de trabajo en un estadoinconsistente. Si el fichero que est actualizando ha cambiado de nombre, incluso puedeencontrar que ese fichero ha desaparecido de su copia de trabajo porque en esa revisin nohaba ningn fichero con ese nombre. Tambin debe tener en cuenta que el tem mostraruna sobreimpresin normal verde, por lo que no se puede distinguir del resto de ficherosque estn actualizados.

    Resolviendo conflictos

    De vez en cuando, obtendr un conflicto cuando actualice/fusione sus ficheros desde elrepositorio o cuando cambie su copia de trabajo a una URL diferente. Hay dos tipos deconflictos:

    Conflictos de fichero

    Un conflicto de fichero ocurre si dos (o ms) desarrolladores han cambiado lasmismas lneas de un fichero.

    Conflictos de rboles

    Un conflicto de rbol ocurre cuando un desarrollador mueve/renombra/elimina unfichero o una carpeta, que otro desarrollador tambin hamovido/renombrado/borrado, o quizs lo haya modificado.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    11/20

    Tutorial de Subversin

    11

    Conflictos de ficheros

    Un conflicto de fichero ocurre cuando uno o ms desarrolladores han hecho cambios en lasmismas lneas de un fichero. Dado que Subversion no sabe nada de su proyecto, delega laresolucin de los conflictos en los desarrolladores. Cuando se le informa de un conflicto,

    debera abrir el fichero en cuestin, y buscar lneas que empiecen con el texto

  • 8/6/2019 Tutorial de Subversion-Eclipse

    12/20

  • 8/6/2019 Tutorial de Subversion-Eclipse

    13/20

    Tutorial de Subversin

    13

    El desarrollador B ahora tiene que elegir si mantiene los cambios realizados por eldesarrollador A. En el caso de un renombrado, puede fusionar los cambios de Foo.c dentrodel fichero renombrado Bar.c. Para simples borrados de ficheros o directorios puede elegirquedarse con los cambios del tem del desarrollador A y descartar el borrado. O, si marca elconflicto como resuelto sin hacer nada ms, estar descartando los cambios del

    desarrollador A.El dilogo de editar conflictos ofrece la posibilidad de fusionar cambios si puede encontrarel fichero original del renombrado Bar.c. Dependiendo de dnde se haya realizado laactualizacin, puede que no sea posible encontrar el fichero de origen.

    Edicin local, entra un borrado en la actualizacin

    1. El desarrollador A mueve Foo.c a Bar.c y lo confirma en el repositorio.2.

    El desarrollador B modifica Foo.c en su copia de trabajo.

    O en el caso de mover una carpeta...

    1. El desarrollador A mueve la carpeta padre FooFolder a BarFolder y lo confirmaen el repositorio.

    2. El desarrollador B modifica Foo.c en su copia de trabajo.Una actualizacin de la copia de trabajo de B acaba con un conflicto de rbol. Para unconflicto simple de fichero:

    Bar.c se aade a la copia de trabajo como un fichero normal.

    Foo.c se marca como aadido (con historia) y tiene un conflicto de rbol.Para un conflicto de carpeta:

    BarFolder se aade a la copia de trabajo como una carpeta normal. FooFolder se marca como aadida (con historia) y tiene un conflicto de rbol.

    Foo.c se marca como modificado.

    El desarrollador B tiene ahora que decidir si desea continuar con la reorganizacin del

    desarrollador A y fusionar sus cambios en los ficheros correspondientes de la nuevaestructura, o simplemente revertir los cambios de A y mantener el fichero local.

    Para fusionar sus cambios locales con la reorganizacin, el desarrollador B tiene queencontrar primero qu nombre de fichero tiene ahora el fichero en conflicto Foo.c que fuerenombrado/movido en el repositorio. Esto puede hacerse utilizando el dilogo de registro.Luego debe fusionar los cambios a mano ya que no hay actualmente forma de automatizaro simplificar este proceso. Una vez que se hayan portado los cambios, la ruta en conflicto

  • 8/6/2019 Tutorial de Subversion-Eclipse

    14/20

    Tutorial de Subversin

    14

    es redundante y puede borrarse. En este caso utilice el botn Eliminar en el dilogo deeditar conflictos para limpiar y marcar el conflicto como resuelto.

    Si el desarrollador B decide que los cambios de A eran errneos deber elegir el botnMantener en el dilogo de editar conflictos. Esto marca el fichero o carpeta en conflicto

    como resuelto, pero los cambios del desarrollador A tendrn que eliminarse a mano. Denuevo el dilogo de registro ayuda a controlar lo que se ha movido.

    Eliminacin local, entra una eliminacin en la actualizacin

    1. El desarrollador A mueve Foo.c a Bar.c y lo confirma en el repositorio2. El desarrollador B mueve Foo.c a Bix.c

    Una actualizacin de la copia de trabajo del desarrollador B acaba con un conflicto derbol:

    Bix.c se marca como aadido con historia. Bar.c se aade a la copia de trabajo con el estado 'normal'. Foo.c se marca como borrado y tiene un conflicto de rbol.

    Para resolver este conflicto, el desarrollador B tiene que averiguar qu nombre de ficherotiene ahora el fichero en conflicto Foo.c que fue renombrado/movido en el repositorio.Esto puede hacerse utilizando el dilogo de registro.

    Luego el desarrollador B tiene que decidir qu nuevo nombre de fichero de Foo.c mantiene

    - el del desarrollador A o el renombrado que hizo l mismo.Despus de que el desarrollador B haya resuelto manualmente el conflicto, el conflicto derbol debe marcarse como resuelto mediante el botn del dilogo de editar conflictos.

    Falta en local, entra un cambio en la fusin

    1. El desarrollador A, que est trabajando en el tronco, modifica Foo.c y lo confirmaen el repositorio

    2. El desarrollador B, que est trabajando en una rama, mueve Foo.c a Bar.c y loconfirma en el repositorio

    Una fusin de los cambios en el tronco del desarrollador A con los cambios de la copia detrabajo de la rama del desarrollador B acaba con un conflicto de rbol:

    Bar.c ya est en la copia de trabajo con estado 'normal'. Foo.c se marca como faltante con un conflicto de rbol.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    15/20

    Tutorial de Subversin

    15

    Para resolver este conflicto, el desarrollador B tiene que marcar el fichero como resuelto enel dilogo de edicin de conflictos, lo que lo eliminar de la lista de conflictos. Luegotendr que decidir si copia el fichero faltante Foo.c desde el repositorio a la copia detrabajo, si fusiona los cambios del desarrollador A hechos a Foo.c en el ficherorenombrado Bar.c, o si desea ignorar los cambios marcando el conflicto como resuelto y

    no haciendo nada ms.Tenga en cuenta que si copia el fichero faltante desde el repositorio y luego marca comoresuelto, su copia de eliminar de nuevo. Tiene que resolver el conflicto antes.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    16/20

    Tutorial de Subversin

    16

    Uso del Subversive en el Eclipse

    El Subversive es un plugin que se instala en el Eclipse, el cual, nos permite interactuar

    directamente nuestros proyectos de eclipse con los repositorios locales y remotos que trabajan

    con Subversion, esto nos permite una mayor facilidad a la hora de programar.

    Crear un proyecto con conexin al repositorio a travs del Subversive

    Para tener un proyecto con subversion, es necesario, crear la estructura del proyecto (Proyecto

    Web, proyecto bsico, Web Services, etc.). Una vez que tengamos nuestro proyecto creado con el

    eclipse, hacemos clic con el botn derecho del mouse sobre el proyecto y seleccionamos la opcin

    Team>Share Project.

    Seleccionar la opcinSVN

    de la ventana Share Project y seleccione

    Next >

    .

  • 8/6/2019 Tutorial de Subversion-Eclipse

    17/20

    Tutorial de Subversin

    17

    Capturar los valores de conexin y autentificacin al repositorio remoto y seleccione Next >:

    Seleccionar la ruta y el nombre de localizacin del proyecto en el repositorio remoto y seleccione

    Next >:

  • 8/6/2019 Tutorial de Subversion-Eclipse

    18/20

    Tutorial de Subversin

    18

    Captura algn comentario que tendr el commit (En este caso es el commit inicial al repositorio

    remoto) y haz clic en Finish

    Al finalizar este proceso, se descarga la versin ms reciente que hay en el repositorio de

    Subversion.

  • 8/6/2019 Tutorial de Subversion-Eclipse

    19/20

    Tutorial de Subversin

    19

    Para ver todas las opciones que tiene el Subversive en el eclipse, es hacer clic derecho del mousesobre el proyecto y seleccionar la opcin Team.

    Commit

    Durante el desarrollo, es normal que los programadores realicen cambios a los archivos ya

    existentes o incluso agregar nuevos archivos de cdigo fuente o libreras. Por lo tanto es necesario

    agregar estos cambios al repositorio del control de versiones. Para esto, es importante sincronizar

  • 8/6/2019 Tutorial de Subversion-Eclipse

    20/20

    Tutorial de Subversin

    20

    nuestro proyecto con el repositorio remoto en busca de inconsistencias (Team Sinchronizewith Repository):

    En la ventana anterior, se puede ver todos los cambios que ha realizado y que han realizado los

    dems desarrolladores en el ambiente de desarrollo. Adems de encontrar inconsistencias como

    la modificacin de la misma lnea de un mismo archivo del cdigo fuente. En esta ventana se

    puede seleccionar elemento a elemento o seleccionar varios a la vez, a travs del botn derecho

    sobre el o los archivos con el mouse y seleccionar la opcin commit. De la misma forma, de

    existir cambios que no tienes en tu proyecto puedes seleccionarlos y utilizar la opcin Update, la

    cual actualizar los cambios a tu proyecto local. En el caso de existir inconsistencias, se puede

    hacer doble clic al archivo y verificar en que lnea estn las inconsistencias, de tal forma que se

    pueda resolver de manera manual o seleccionar cualquiera de las opciones Override and Commint

    y Override and Update. Las cuales reemplazarn el archivo en el repositorio remoto

    reemplazarn los cambios en tu proyecto local respectivamente.