Creamos el repo # svnadmin create repo # cd repo Vemos que se crea el directorio especial # ls -l repo total 28 drwxr-xr-x 2 guestlabi guestlabi 4096 2005-05-18 13:49 conf drwxr-xr-x 2 guestlabi guestlabi 4096 2005-05-18 13:49 dav drwxr-sr-x 2 guestlabi guestlabi 4096 2005-05-18 13:49 db -r--r--r-- 1 guestlabi guestlabi 2 2005-05-18 13:49 format drwxr-xr-x 2 guestlabi guestlabi 4096 2005-05-18 13:49 hooks drwxr-xr-x 2 guestlabi guestlabi 4096 2005-05-18 13:49 locks -rw-r--r-- 1 guestlabi guestlabi 379 2005-05-18 13:49 README.txt #Esto es un repositorio central, en el caso de usarlo nosotros solos es un poco molesto porque hay que obtener una WC para trabajar en él.
Obtenemos un WC # svn co file://$PWD/repo wc #Ahora creamos la estructura básica para branches (en este caso es un poco overkill, pero lo hacemos a modo demostrativo).
Obtenemos un WC # cd wc # svn mkdir trunk A trunk # svn mkdir branches A branches # svn mkdir tags A tags # Hacemos un commit para poner registrar la estructura # svn ci -m 'Estructura general del repositorio.' Añadiendo branches Añadiendo tags Añadiendo trunk #Ahora agregamos el primer archivo
Creamos un archivo nuevo editandolo # cd trunk # vi arroz # Lo incorporamos al repositorio # svn add arroz A arroz # Vemos el estado del repositorio # svn st A arroz #
Y volvemos a hacer un commit para grabar el cambio en el repositorio:
# svn ci -m 'Nueva receta para hacer arroz.' Añadiendo trunk/arroz Transmitiendo contenido de archivos . Commit de la revisión 2. #Vemos el historial de cambios
# svn log arroz Muestra sólo las revisiones en dónde cambió este archivo ------------------------------------------------------------------------ r2 | guestlabi | 2005-05-18 15:31:13 -0300 (mié, 18 may 2005) | 1 line Nueva receta para hacer arroz. ------------------------------------------------------------------------ #Ahora hagamos un cambio chico editando un poco el contenido, y antes de hacer un commit queremos ver el diff, asi nos aseguramos que este todo bien; despues lo grabamos con un commit.
Editamos un poco # vi arroz Vemos qué cambió # svn st M arroz # Vemos los cambios # svn diff Index: arroz =================================================================== --- arroz (revisión: 2) +++ arroz (copia de trabajo) @@ -1,5 +1,5 @@ -poner agua a hervir con sal (ponerle poca sal) +poner agua a hervir con poca sal cuando hierva agregar el arroz y bajar un poco el fuego @@ -8,7 +8,7 @@ ponerle aceite, puede ser de oliva; poner tambien un chorrin en la fuente antes, abajo del arroz -cuatro tazas de agua x una de arroz +cuatro tazas de agua por una de arroz una taza de arroz por persona (salen 2 platos) # Nos parecio bien lo que ibamos a cambiar, asi que hacemos el ci # svn ci -m 'Unos pequeños cambios.' Enviando trunk/arroz Transmitiendo contenido de archivos . Commit de la revisión 3. #Ahora hacemos otros cambios más que creemos que estan bien, pero después llamamos a la mamá de Alberto y ella nos grita "Horror! No hagas eso nene que se te va a quemar todo", así que queremos volver a como estabamos antes de empezar.
Primero editamos # vi arroz # svn diff [...] # Aca llamamos a la mamá de Alberto, y se horroriza. Volvemos todo para atrás, hasta el último commit que hicimos # svn revert arroz (hay que poner explícitamente los archivos a revertir, para evitar errores indeseados, porque hay que tener en cuenta que esta operación puede borrar cosas importantes sin vuelta atrás) Se revirtió 'arroz' #Pero claro, a medida que pasa el tiempo nos vamos poniendo mas cancheros con el arroz, y decidimos que la receta del arroz tal como esta ahi deberia llamarse "arroz-solo", asi que la renombramos.
# svn mv arroz arroz-solo Notar que el mv es un copy + delete, pero como el copy conserva la historia, no hay ningún problema. A arroz-solo D arroz # ls -l total 4 -rw-r--r-- 1 guestlabi guestlabi 358 2005-05-18 15:49 arroz-solo #Bueno, ya vimos bastante acerca de como trabajar solos, salgamos un poco al mundo y veamos que hay ahi afuera.