lunes, 28 de enero de 2013

Uso de TortoiseSVN / Subversion

Bueno después de un tiempo, vuelvo para comentarles sobre el uso de este interesante controlador de versiones totalmente para windows.

 Bueno no diré de donde bajarlo pues de seguro ya lo saben (googlea)

La mecánica de SVN en este caso de tortoise es:
  1. Se crea un repositorio. 
  2. Se sacan copia del repositorio (copias de trabajo) 
  3. Desde las copias de trabajo, se actualiza el repositorio, como una nueva versión. 
  4. Se puede sacar desde el repositorio copia de cualquier versión que se tiene almacenada. 
  5. Se puede trabajar en paralelo con una misma versión y luego combinar y resolver conflictos de ambos archivos. 
Detallo cada uno de los pasos con comandos de windows:

  1. Una vez instalado el Tortoise se añadirá al menú contextual las opciones interesantes del mismo. La forma mas segura de crear un repositorio es importarlo, para tal fin se sigue los siguientes pasos: - Se crea una carpeta donde se guardara el repositorio: ejemplo
    "svnEjemplo", Bueno alli se hace menú contextual /TortoiseSVN/Create Repository here.. luego "create folder structure".
    Luego hay que importar los archivos que formaran parte del repositorio. Para ello uno se ubica en la carpeta donde están los archivos y con el menú contextual en /TortoiseSVN/Import...
    Pide como datos la dirección del repositorio en mi caso como esta en el disco D puse
      file:///D:/ejemSVN, se pude añadir un comentario. (ojo son 3 /// para direccionar a disco).
    Una ves importado ya se puede prescindir de los archivos de la carpeta importada, pues todo estara ahora en D:/ejemSVN, inclusive las futuras modificaciones o versiones.
  2. Para poder utilizar los archivos del repositorio uno tiene que realizar un checkout del repositorio para ello se debe crear una nueva carpeta donde se tendrán los archivos de trabajo. ejemplo "proy1", igual con menu contextual SVN Checkout sobre la carpeta creada. en la ventana también se pude indicar la versión que queremos en "Revision", de otro modo sera la ultima o mas reciente. Si todo esta bien obtendremos en "Proy1" todos los archivos y según la versión requerida.
  3. Una ves trabajados los archivos con actualizaciones o nuevos archivos (este ultimo se usa el add)  se realiza una actualización de version con el  menu contextual SVN commit. Ahora cuando hagamos otra copia de trabajo se tendra siempre la ultima version. E inclusive si ya teniamos una copia de trabajo la podemos actualizar con el comendo SVN Update..
  4. El procedimiento descrito anteriormente, es para trabajo secuencial, es decir SVN checkout - Modificaciones - SVN Commit.. / SVNUpdate. Pero que sucede si dos personas hacen cada uno una copia de trabajo y actualizan en paralelo los dos archivos. Ello para el Tortoise indicara un error, pues las versiones no estaran actualizadas. Para resolver ese problema se tiene que combinar (merge) y corregir (resolved), sea de manera manual o automática con Tortoise.
    En mi caso tuve el problema de trabajar un archivo word de manera paralela, para suerte nuestra se tiene que el Word puede hacer el combinado con lo cual nos ahorra bastante trabajo. El procedimiento es el siguiente:
    • Modifican 1
      Modifican 2
    • Commit en 1 - Aceptado los cambios de 1
    • Update en 2 : Muestra error por q el archivo esta desactualizado. Sirve para que se muestre el error
    • Commit en 2 (color rojo archivo) : muestra donde esta los errores para hacer commit; resolver conflictos con doble click en archivo rojo, se abre word con opcion - merge : finalmente solo se tiene que guardar.
    • Resolved... en 2:  Nueva version con los cambios de 1 y 2.
    • Commit en 2 : version final recoge lo de 1 y 2
    • Update 1: para tener la ultima version para 1 tambien