Un cliente de Subversion gráfico: TortoiseSVN

TortoiseSVN puede descargarse desde su página web. La instalación no tiene ninguna complicación y una vez se termine la instalación se añadirán una serie de entradas en el menú contextual del explorador de Windows.

Si abrimos el explorador y hacemos clic sobre el menú Archivo vemos una entrada de menú checkout y otra TortoiseSVN. Si pulsamos sobre checkout Tortoise comprobará los archivos del repositorio, para lo cual tenemos que pasarle la URL del repositorio (si estamos en nuestro PC, http://127.0.0.1/repos si seguisteis los pasos de la entrada anterior de la bitácora: ¿Qué es un CVS? Instalación de Subversion) y el directorio en que guardaremos en local los archivos que bajemos del repositorio. Al darle a aceptar se creará el directorio donde guardar la copia del repositorio si este no existía y se descargarán los archivos del repositorio a este. En nuestro caso dado que no tenemos ningún archivo en el repositorio aún, simplemente creará un directorio vacío. Una vez que hemos hecho esto podremos añadir, borrar o modificar los archivos en local y mandarlos luego al repositorio.

Si os habéis fijado ha aparecido una marca con fondo verde sobre el directorio donde tenemos el repositorio local. Esto significa que el directorio está actualizado respecto del repositorio remoto. En el momento en que editemos algún archivo en local aparecerá una exclamación sobre fondo rojo en el archivo editado y los directorios que lo contienen, para avisarnos de que tenemos que actualizar el repositorio remoto con nuestra copia (commit).

Vamos a añadir nuestro primer archivo al repositorio remoto. Para ello creamos un archivo en el directorio local, por ejemplo un HolaMundo.java

class HolaMundo{
    public static void main (String arg[ ]){
        System.out.println("Hola Mundo");
    }
}

si hacemos clic con el botón derecho sobre el archivo recién creado dentro de la entrada de menú para TortoiseSVN tenemos una opción Add. Hacemos clic sobre ella, lo que hace que aparezca una cruz en azul, indicando que se ha añadido el archivo al repositorio pero tenemos que enviarlo usando commit. Si hacemos clic con el botón derecho ahora veremos que tenemos una opción commit (actualizar el repositorio remoto con nuestra copia) y otra update (actualizar la copia local con la versión del repositorio remoto). Hacemos clic sobre commit, con lo que nos pedirá nombre de usuario y contraseña si indicamos a Apache que era necesario para escribir en el repositorio. Una vez introducida la contraseña podemos abrir el repositorio remoto (http://127.0.0.1/repos) y comprobamos que aparece un nuevo archivo HolaMundo.java y que ha cambiado el número de revisión de 0 a 1.

Ahora si hacemos algún cambio en el archivo HolaMundo local (nunca se debe editar directamente el repositorio remoto porque podría corromperse la información) y añadimos otra línea, por ejemplo

class HolaMundo {
    public static void main (String arg[ ]) {
        System.out.println("Hola Mundo");
        System.out.println("Adios");
    }
}

vemos que aparece una exclamación en fondo rojo sobre el archivo editado como ya habíamos comentado. Si queremos actualizar la copia remota con la nueva versión de HolaMundo usamos commit.

También podría ser que quisiéramos actualizar la copia de HolaMundo con posibles cambios que hubiera hecho otro programador, para lo cual utilizaríamos update.

Sin embargo hay ocasiones en que el proceso para commit y update no es tan sencillo. Puede ocurrir que otro programador haya editado alguna línea que nosotros también hemos editado, en ese caso hay un conflicto el cual subversion no puede resolver y tiene que ser el propio usuario el que realice los cambios necesarios antes de usar commit. Si intentamos actualizar el repositorio remoto y la copia del repositorio tiene algún conflicto con la nuestra nos mostrará un mensaje de error

‘Commit failed (details follow)
Your file HolaMundo.java is probably out of date.
The version resource does not correspond to the resource within the transaction…’

y aparecerá una señal de alerta sobre el icono del archivo en cuestión. Una vez que termináramos de editar el archivo usaríamos Resolve, y esta vez si, se actualizaría el repositorio remoto.

Además de crear o editar archivos o directorios también podemos por ejemplo eliminarlos, renombrarlos, moverlos,… para más información podéis leer la Guía de Introducción a TortoiseSVN o su FAQ, ambos en inglés.

TortoiseSVN, un cliente de Subversion

Comentarios
  1. Luis Irala

    Hola, Estoy empezando a usar el TortoiseSVN. Creo un repositorio y quiero importar una carpeta al repositorio y me da error.
    Me puedes indicar como creo un repositorio, importo algo adentro y luego hago el Checkout y por ultimo el commit, y estoy usando windows 98.

    Muchas Gracias
    Luis Irala

    Responder

  2. john

    hola.
    similar al problema anterior… tengo un repositorio en una URL dada, en una carpeta nueva en mi directorio local hago clic en file->SVN checkout y me aparece el siguiente error.

    PROPFIND request fail on /svn
    PROPFIND of ‘/svn’:405 method not allowed y entre parentesis la url donde monte el repositorio..

    estoy accediendo desde un windows XP..

    espero alguna ayuda gracias…

    Responder

  3. […] Más sobre TortoiseSVN […]

    Responder

  4. La URL del tortoise está mal, han debido cambiar la URL para descargas desde que se escribió el post.

    Responder

  5. Pues si. Gracias Saiyine, ya está modificado.

    Responder

  6. Adriana

    hola

    tengo un problemita con Tortoise, resulta que los cambios que hago en mi archivo original no me los guarda y si los guarda no los encuentro no se en carpeta los esta poniendo, me pueden explicar como guardo los cambios para que me aparezcan en las carpetas que cree es decir la de tags y branches, si me pueden ayudar por favor soy nuevesita en todo esto

    Responder

  7. nataly

    tengo un problema con el tortoise;estoy trabajando con 2 compañeros en un proyecto bajo el visual studio.net 2005 y siempre que hago commit, no me deja, me saca un error MKACTIVITY …403 forbidden(192.168.10.30) y los compañeros con los que estoy trabajando con el mismo archivo les trabaja bien, ¿alguien me puede ayudar a solucionarlo?

    Responder

  8. Elena

    Aupa!!!
    Tengo un problema con tortoise, aunque no sé si puede ser por el servidor Apache. ¿Cómo puedo hacer para que siempre que se quiera acceder al repositorio me pida nombre de usuario y contraseña? Porque ahora no me lo pide y siempre me lo guarda con un usuario que no puedo cambiar.
    Gracias.

    Responder

  9. pablo

    hola, he implementado el SVN y el Tortoise en windows y me gustaria saber mas acerca de las opciones de los menus… espero q me ayuden, gracias.

    Responder

  10. roberto

    yo instale svn en windows y en linux

    Responder

  11. svn

    buenas,
    tengo un error con SVN al hacer commit del tipo
    svn: Commit failed (details follow):
    svn: MKACTIVITY of ‘/ex_svn/GestionRiesgos/!svn/act/c2ede279-d5a8-ef4a-8fab-4888ee3daa7d’: 403 Forbidden (http://repsvn.intranet.gasnatural.com)

    Por favor, alguien me puede dar pistas de porque se produce.
    Gracias.

    Responder

  12. @svn ¿Tienes permisos para acceder al repositorio?

    Responder

  13. svn

    si tengo permisos, de hecho puedo hacer checkout, pero cuando intento hacer commit es cuando me muestra este error.

    Gracias.

    Responder

  14. Roberto Martinez

    Hey viejo lo que te esta sucediendo es que no tenes permisos de escritura sobre los ficheros donde se guarda la informacion en el repositorio, por lo que tenes que darle permisos totales a las carpetas

    Responder

  15. […] Invitaciones de Gmail (y 3) | Un cliente de Subversion gráfico: TortoiseSVN […]

    Responder

  16. […] Sin embargo ambos están lejos de la popularidad de otras alternativas independientes como TortoiseSVN, por razones […]

    Responder

  17. Wendy

    Buenas tengo un problema al realizar un commit, el error es el siguiente.
    svn: Commit failed (details follow):
    Svn:Server sent unexpected return value (423 Locked) in response to PUT request for ‘/svn/Equipo1/!svn/wrk/f5762612-4622-4f4f-bde1-3e13e2360317/LN/Contactos.vb’

    Responder

  18. […] TortoiseSVN: un cliente gráfico de Subversion en Windows del que ya hablamos en su día […]

    Responder

  19. fabio

    ayudenme porfavor yo se que ya hablaron algunavez de TORTORISE pero a mi me sale este errro tambien:

    Commit failed (details follow):
    Svn:Server sent unexpected return value (423 Locked) in response to PUT request for ‘/svn/Equipo1/!svn/wrk/f5762612-4622-4f4f-bde1-3e13e2360317/LN/Contactos.vb’

    Hice que lo implementaran en la empresa y cuando ya estaba implementado, tenga que me salio ese error …. porfavor help me

    Responder

  20. Blanca

    necesito que los archivos mantengan la fecha de creación y no la fecha en que fueron importados o traídos a mi equipo por Tortoise, es posible esto?????

    Responder

  21. Me sale el mismo error que a fabio y no lo puedo solucionar, no encuentro la respuesta por ningun lado ayudaaaa

    Responder

  22. Adriux

    Hola, ya he trabajado antes con el TORTOISE…
    Pero, ahora estoy en otra área y desean tener actualizadas sus tablas, ya que pertenezco al área de contratos, pero ellos usan el excel, entonces varios trabajamos con la misma tabla y cuando se tiene que agrupar toda la información, no se sabe quién actualizó los contratos o si se actualizó.

    Hay alguna aplicación parecida al TORTOISE que pueda usar con excel, ya que no desean dejar de usar el excel.

    Saludos.

    Responder

Deja un comentario