domingo, 18 de mayo de 2008

TortoiseSVN y Google Code

Bueno como ya sabreís google ha creado un nuevo servicio ofreciendo a la comunidad de desarrolladores de software libre un espacio de hasta 100 mgs gestionado con Subversion, al estilo de SourceForge. Pues bien una vez tenemos nuestra cuenta de google y nuestro espacio disponible ahora necesitamos un cliente SVN para gestionar nuestro código (subirlo al servicio de google, bajarlo , actualizarlo, etc.) por ese motivo en este artículo explico como hacerlo desde TortoiseSVN una herramienta muy sencillita pero sólo disponible en windows, para otros sistemas podeis buscar:

  • Mac OS X finder plugin - SCPlugin
  • Unix graphical SVN client - eSVN
  • KDE-integrated SVN client - kdesvn




Antes de empezar ahi 5 cosas que tu necesitas:

1 Google Account (cuenta en google)

Si usas gmail ya tienes cuenta y el user y el password será el mismo. Si no es así puedes creartela en aqui: https://www.google.com/accounts/NewAccount

2 Tener un proyecto

En la url: http://code.google.com/hosting/

encontrarás el enlace "Sign in with your Gmail account to create a project" una vez introduzcas tu user y password te permiterirá crear un proyecto en google code.

Pues bien una vez tengamos nuestro proyecto creado podrás gestionar los miembros la licencia etc etc y todo con un interfaz usando AJax muy bonito..

3 TortoiseSVN

Bajate e instala la última versión de este software que podrás encontrarlo en SourceForge

4 Tu password de google code

La conexión a tu espacio de google se hace a través de HTTPS (conexión segura) para ello google utiliza como user el mismo que el de gmail (ej jorge@gmail -> user:jorge ) pero como password por seguridad te ofrece uno autogenerado que encontrarás en la web de tu proyecto (http://code.google.com/hosting/), pues una vez logeado con tu usuario y password de gmail:

Te vas a "My Profile -> Settings" y alli esta tu password asignado a google code

5 Tu URL project

Pues al igual que antes pero ahora en My Profile podemos ver la lista de proyectos a los que pertenecemos y si pinchamos sobre alguno de ellos nos direcciona a la web de nuestro proyecto. Pues bien, una vez dentro de nuestro proyecto nos vamos a la sesion Source y encontraremos algo así:

Command-Line Access

# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://[tuproyecto].googlecode.com/svn/trunk/ [tuproyecto] --username jorge

Pues en negrita te marco cual será la URL de conexión de tu proyecto.

Una vez tengamos estás cinco cosas ya podemos subir nuestro código desde nuestra máquina a google code y gestionarlo posteriormente.

¿Cómo subir nuestros ficheros a google code?

- En nuestra máquina seleccionamos la carpeta donde se encuentra tu proyect

- Clic botón derecho del ratón y nos aparecerán las opciones y si habeis instalado Tortoise correctamente tendremos añadidas las opciones de Tortoise

- "TortoiseSVN > Import "

- Nos aparece una ventana que nos pregunta por la URL de nuestro respositorio, introducimos: https://[tuproyecto].googlecode.com/svn/trunk/ (obtenida en el punto 5)

- Tras darle aceptar nos preguntará por user y password (obtenidos en punto 4)

- Tras aceptar la conexión, comenzará la subida de tus ficheros al espacio de google code.

¿Cómo bajarte el proyecto desde google code?

- Creamos una carpeta en nuestro disco duro

- Click sobre el botón derecho del ratón

- Seleccionamos "SVN checkout..."

- Nos preguntará la URL del repositorio, al igual que antes introducimos: https://[tuproyecto].googlecode.com/svn/trunk/ (obtenida en el punto 5)

- Tras darle aceptar nos preguntará por user y password (obtenidos en punto 4)

- Comienza la descarga de todo el código de tu proyecto que se almacenará en la carpeta creada.

Bueno eso es todo, para subir una actualización a google code lo harás con 'commit' y para preguntar al servidor por una versión más actualizada pulsamos sobre 'update'.

Y poco más espero que os sirva para crear vuestros proyecto en google code Guiño

9 comentarios:

Lucas Pérez dijo...

Bastante claro, me sirvió.
Saludos!!

Pablo dijo...

Arme el proyecto como dices, hice varios comits, un amigo me esta por ayudar, pero cuando hace checkout solo se bajan unos pocos archivos que son los ultimos a los que hice commit. Que sucede, estuve haciendo algo mal, como hago un checkout de todo completo? muchas gracias.

Jorge Cantón Ferrero dijo...

Hola Pablo, pues la verdad es que parece como si no hubieras importado correctamente el proyecto. Si fuera tu, haría una prueba muy simple. Crea una capreta en tu escritorio y haz un checkout de tu propio proyecto, con eso comprobaras que es lo que hay subido al svn. Si tu proyecto te descarga todos los ficheros. entonces lo que puede ocurrir es que tu amigo haya puesto la Url mal en el checkout y en vez de apuntar a la raiz "Trunk" ha apuntado a alguna carpeta dentro del trunk, por lo que sólo se ha descargado esa carpeta y los ficheros a partir de ella.

Espero que alguna de estas ideas te ayude.

Pablo dijo...

Gracias por la respuesta Jorge pero tampoco, probe en casa y en un par de maquinas mas, y lo unico que se baja son los ultimos archivos que habia hecho commit. Digamos que la r20, y es como que se pierde lo de la r19, y asi. Tambien probe bajar la r2 y luego hacer update, pero tambien solo bajaron la r2 y al hacer update la r20 las intermedias no bajan. :(

Jorge Cantón Ferrero dijo...

Pues es muy raro Pablo, por lo que me estás diciendo, cada vez que subes una nueva versión, se borra todo lo anterior?.

Como ahora estas en la versión 20 podías probar a subir un fichero de txt simple y luego hacer un checkout de la versión 21, según lo que me cuentas sólo se te bajaría el fichero txt no?

Pablo dijo...

Asi es, ahora subi el codigo aqui: beanstalkapp, y esta funcionando. Lo que me sucede en gcode es que arme la estructura, hice el import y deje la estructura armada en el repo. Luego con svn hice un checkout en otra carpeta y me quedo listo, comence a trabajar, y cada vez que hacia comit o update estaba todo bien porqeu estaba en la carpeta donde habia hecho el primer checkout. Pero al hacer un checkout en una nueva carpeta se baja solo lo ultima, si hieras lo que decis solo se baja el archivo txt. Para que baje todo tenes que ir haciendo checkout de cada uno de los r1,r2,...,rn.
Por lo que lo deje abandonado, por ahora y vamos a trabajar en ese otro. Le tengo mas confianza a gcode pero bue...

name dijo...

Excelente.

Paola Bruccoleri Arrambide dijo...

Hola Jorge.. muy buen artículo y muy claro. Ahora, me queda una duda:
¿puedo bajarme el proyecto de google code a la MISMA carpeta que usé para subirlo (importarlo) o se arma problema?
¿la carpeta que se usó para importarlo no se considera ya como que ese es el repositorio?
Muchas gracias

Jorge Cantón Ferrero dijo...

Hola Paola, respondiendo a tu pregunta hay otras herramientas con las que si puedes hacer esto que comentas, pero con tortoise la carpeta que usas para subir es una y una vez creado el repositorio lo mejor es crearte otra carpeta y hacer un checkout del proyecto en esta nueva carpeta, de esta forma además puedes comprobar que se ha subido correctamente tu proyecto.