domingo, 27 de octubre de 2013

Usar SVN de Google Code con Eclipse

¿Alguna vez has tenido la  tiránica tarea de unir a un proyectos los cambios efectuados por alguien más? ¿Alguna vez (por A o motivo) has perdido cambios hechos a tu proyecto o el proyecto completo? Pues estas son cosas de de alguna u otra forma pueden suceder.

Este artículo mostrará cómo evitar situaciones como las mencionadas anteriormente usando Google Code y el IDE Eclipse. Puede que se vea extenso, pero se hizo así para que sea lo mas sencillo posible de entender.
¿Y que es eso del SVN de Google Code? Pues bien, SVN se refiere a Subversión que es un sistema de versionado que permite alojar remotamente el código del proyecto (para el caso: Google Code) teniendo al mismo tiempo una copia local en tu PC del proyecto. Se trabaja sobre la copia local (para el caso de un grupo, cada quién trabaja sobre su copia local) y se mandan los cambios (secommitean) hacia el proyecto remoto en Google Code cuando sea conveniente.
Algunas tareas que se pueden realizar son:
  • Update: descarga los cambios del proyecto remoto para poder tenerlos en el proyecto local.
  • Commit: envía hacia el proyecto remoto los cambios hechos en el proyecto local.
  • Sincronizar: sincroniza el contenido del proyecto local con el contenido del proyecto remoto.
Si en algún momento hay diferencias en el proyecto que “chocan” ya sea local o remotamente se pueden tomar diferentes acciones, entre ellas sobrescribir esas diferencias en el proyecto local, en el proyecto remoto, etc.
Después de esa pequeña introducción lo siguiente es tener una cuenta en Google y tener el IDE de Eclipse instalado y seguir los siguientes pasos.
1. Crear un proyecto en Google Code (http://code.google.com/hosting/createProject).



Después, en la página principal del proyecto en la pestaña Source aparecerá el link que usaremos para acceder al recurso remoto. El link es de la forma https://[nombre-del-proyecto]/googlecode.com/svn. Para el caso de nuestro proyecto será: https://my-projec2t-name2.googlecode.com/svn/.


2. Preparando eclipse.
Lo primero que hay que hacer en Eclipse es instalar el plugin de subversión. Para esto dirigirse al menú Help->Install New Software… Le dan Al botón Add  y agregan la siguiente URL: http://subclipse.tigris.org/update_1.4.x Y como nombre pueden poner algo como: Plugin Subversión

Después de eso, marcar todo he instalarlo

Ahora nuestro Eclipse está listo para poder trabajar con SVN de Google Code.
Para empezar, creamos un proyecto en Eclipse (o igual podría hacerse sobre uno ya existente). Para el ejemplo de este artículo será un proyecto Java sencillo como muestra la siguiente captura:

Para agregar a Google Code damos clic derecho sobre el proyecto en Team->Share Proyect y seguir los pasos que se muestran en las siguientes capturas:


En la primera pantalla seleccionamos el tipo de repositorio SVN y en la segunda seleccionamos Crear un nuevo repositorio.





Cuando nos solicite la URL del repositorio, introducimos la url del SVN del proyecto que creamos en Google Code y presionamos el botón Finish

 Si se muestra una ventana mostrando una advertencia sobre el certificado digital le damos Acetar Permanentemente.






 A continuación se nos pedirá el nombre de usuario (el de la cuenta de Google) y una contraseña


Recordar que esta informacion la encontramos en en google code. La contraseña que se tiene que ingresar se puede ver en: https://code.google.com/hosting/settings


Ahora proporcionamos el usuario y password y continuamos con el proceso.



Ahora nos muestra una perspectiva para SVN desde donde realizaremos operaciones.


Después de esto, nuestro proyecto estará listo para “commitearlo” para que nuestro proyecto local sea enviado a Google Code.

 Para esto damos clic derecho en la carpeta del proyecto y nos dirigimos a Team->Commit… y se abrirá la siguiente ventana donde tendremos que marcar con un cheque los archivos que queremos commitear (como es el primer commit seleccionamos todos los archivos) y un apartado para ingresar un comentario sobre el commit que se realizará. Es recomendable siempre hacer un comentario para llevar un control sobre los cambios que se envían para así llevar un buen control sobre las modificaciones del proyecto.






En el Explorador de paquetes de Eclipse veremos que nuestro proyecto tiene algunos indicadores como unpequeño “barrilito” amarillo que indica que esta sincronizado con un proyecto remoto (en Google Code). También en el archivo HolaSVN.java (y para cada archivo del proyecto) se muestra un pequeño número que es el número de revisión que significa la ultima versión del archivo. Cada commit incrementa este número. También se muestra la hora y la fecha de la modificación.




De esta forma nuestro proyecto esta a salvo en Google Code y se puede ver en la pestaña Source->Browse 

Los detalles de los commits se pueden ver en Source->Changes 


Y de esta forma se puede llevar el control sobre los cambios que se efectúan en el proyecto.
Y es de esta manera como se puede tener un proyecto remotamente y se puede modificar por varias personas al mismo tiempo. Todo es cuestión de organizarse para trabajar.


2 comentarios:

  1. Hola Diego , probaste con repositorios git para ver si es mejor opcion para desarrollar proyectos con alta tasa de cambio.
    Saludos
    Oscar

    ResponderEliminar
  2. Hola Oscar los sistemas de control de versiones hoy se dividen en los que funcionan centralizados y distribuidos. En los distribuidos se encuentra GIT y en los centralizados SVN. En realidad ningun es totalmente centralizado o distribuido. En el caso de SVN trabajas sobre una copia local en todo momento por lo que no es totalmente centralizado, y en el caso de GIT por lo que general se suele mantener un repositorio centralizado en local que luego se sincroniza. Por ello la diferencia de verdad se encuentra en donde realizan las operaciones de commit, branch ...etc. En lo personal soy de los creen que las herramientas deben ser usadas de acuerdo a la necesidad creo que los dos hoy funcionan muy bien, SVN mejoro mucho el macheo que antes daba calambres. de todas formas en ambos hay que tener cuidado en la concurrencia para no perder codigo. Pero si creo que GIT funciona mejor en proyectos con cambios continuo y trabajo en archivos de manera simultanea. Pero con SVN y cuidado se puede hacer sin problema. De todas formas la idea era mostrar la manera de trabajar con repositorios SVN de internet. muy pronto voy a subir uno del uso de git con repositorios de internet. saludos oscar.

    ResponderEliminar