miércoles, 16 de septiembre de 2009

SVN Local

A continuación una pequeña guia para hacer un SVN local, algo muy útil. Desde que me lo presento un compañero de la facultad, me he vuelto un poco adictivo con esto del "subversionado". Para aquellos que no saben de que se trata: http://es.wikipedia.org/wiki/Subversion
La gran ventaja es que se puede modificar y vover atrás a las diferentes versiones si se quiere o revertir archivos, hacer pruebas, guardarlas y luego volver ese archivo al original y cosas por el estilo. Realmente vale la prueba probarlo. También otra gran utilidad es el tema de la colaboración, como experiencia lo usamos para tps de la facultad donde entre nuestro grupo haciamos todas las modificaciones sobre un repositorio en internet (olvidandonos de andar mandando por mail) y ademas de tener en todas las PC lo mismo :=)....simplemente PRUEBENLO. ESO SI, TENGAN CUIDAD PORQUE SE VUELVE UNA ADICCION. :).

Servidores WEBS Gratuitos:
Conozco sobre 2 servidores gratuitos en internet para realizar proyectos con svn.
+ Gratuito
+ Se puede tener un proyecto privado de forma gratuita.
- A veces no funciona o lo hace muy lento
+ Gratuito
- No se puede tener un proyecto privado de forma gratuita (se debe pagar)
- Funciona rápido y bien.

Crear SVN Local

Muchas veces es util crear un repositorio local por algun motivo para mantener con control de versiones nuestro archivos. Para realizar esta tarea a continuación se presenta un pequeño ejemplo donde se quiere crear un repositorio de un directorio llamado tps que hace referencia a trabajos practicos:
Si bien existe herramientas graficas, lo haremos a continuación por consola. Haremos todo en nuestro home para simplificar:
entramos a nuestro home:
christian@androide:~$ cd /home/christian/

con esta linea creamos el repositorio:
christian@androide:~$ svnadmin create reposvn

supongamos que los archivos que se quieren poner bajo el control de versiones estan en la carpeta: /home/christian/tps/ . Para agregarlos al repositorio lo que se hace es:
christian@androide:~$ cd /home/christian/tps/
christian@androide:~/tps$ ls
tp1.txt
christian@androide:~/tps$ svn import . file:///home/christian/reposvn/ -m "Agregando archivos al control de versiones"
Añadiendo tp1.txt
Commit de la revisión 1.

Como estamos dentro del direcotrio tps, notar que el import se hace de los archivos que estan dentro del mismo (por eso el punto luego del import que hace referencia al directorio en el que estoy parado), si quisiera importar otra carpeta simplemnete reemplazar el punto con la direccion (ej. /home/christian/facu/tps1)

Una vez hecho esto ya tenemos bajo el control de versiones dicha carpeta por lo que podemos borrar dicho directorio
christian@androide:~$ rm -rf tps/

Ahoa procedemos a obtener una copia desde el repositorio:
christian@androide:~$ svn checkout file:///home/christian/reposvn/ tps
A tps/tp1.txt
Revisión obtenida: 1
christian@androide:~$
con esto lo que hicimos es obtener una copia del contenido y meterlo bajo una carpeta que se llama tps.
entramos al directorio bajo control de versiones:
christian@androide:~$ cd tps/
Como dije anteriormente este directorio ya esta bajo el control de versiones y por lo tanto podemos ejecutar los diferenets comandos. Algunos de los mas comunes y usados son lo siguientes:
  • "Obtener status" util para ver el estado del repositorio -> svn st
ejemplo:
christian@androide:~/tps$ svn st ? nuevodirectorio ? tp2.txt
m tp1.txt
significado de algunso simbolos:
? significa que dichos archivos/directorios no estan bajo control de versiones
si quremos agregarlos: svn add tp2.txt
m significa que los archivoarchivo/directorio se han modficado
d significa que el archivo/directorio se ha borrado
  • "Commitear" una nueva version (esto es por ejemplo cuando modifique un archivo y estoy seguro de que esta bien y quiero tenerlo ya resguardado por las dudas; se genera un a nueva version) -> svn ci -m "detalle del commit"
  • "Revertir un archivo" sirve para volver atras un archivo a su ultima version comiteada. supongamos tenia un archivo tp1.txt que lo estaba modificando y lo guarde y depues me di cuenta que estaba mal, entonces para volver a la ultima version comiteada simplemente -> svn revert nombre_archivo
  • "Update del repositorio" -> svn update
  • "Borrar un archivo bajo control de versiones" -> svn delete nombre_archivo
Hay infinidad de comandos y distintas formas de usarlo. Puede consultar el help o el man del comando y ver el manual de usuario o buscar tutoriales en internet ya que hay gran cantidad.
Espero les sirva y espero comentarios, otros comandos que usen y demas :=)

2 comentarios:

Fede dijo...

Simplemente espectacular viejo! justo lo que estaba buscando para instalar en mi sever Debian (que controlo por SSH y/o VNC). Saludos!

christian dijo...

me alegro que te haya servido, tene en cuenta que para que tu svn sea accesible a traves de internet, no resta con los pasos que te detalle... hay que hacer otras cosas.. que cuando pueda las publico... sino buscado en google que habia una pagina donde lo mencionaba.. saludos :)