Ejemplo 1 - En la cueva

En este primer ejemplo vamos a hablar de varias de las operaciones que ya mencionamos. Todas van a ser lineales y aisladas, en el sentido de que van a trabajar sobre un solo repositorio y de forma secuencial.

Antes que nada, creamos el repositorio

Creamos el directorio del repo
# mkdir recetas
# cd recetas

Creamos el repo con darcs
# darcs init

Vemos que se crea el directorio especial
# ls -l
total 8
drwxr-xr-x  6 root root 4096 May 17 22:43 _darcs
#
Ahora agregamos el primer archivo
Creamos un archivo nuevo editandolo
# vi arroz
#
Lo incorporamos al repositorio
# darcs add arroz
#

Y hacemos un record para grabar el cambio en el repositorio:

# darcs record
Solo la primera vez nos pregunta nombre y email
Darcs needs to know what name (conventionally an email address) to use as the
patch author, e.g. 'Fred Bloggs <fred@bloggs.invalid>'.  If you provide one
now it will be stored in the file '_darcs/prefs/author' and used as a default
in the future.  To change your preferred author address, simply delete or edit
this file.

What is your email address? Alberto Bertogli <albertogli@telpin.com.ar>

Nos pregunta cambio por cambio que queremos hacer
El primero es la incorporacion del archivo
addfile ./arroz
Shall I record this patch? (1/2) [ynWsfqadjk], or ? for help: y

Y el segundo el contenido del mismo
hunk ./arroz 1
+
+poner agua a hervir con sal (ponerle poca sal)
+
+cuando hierva agregar el arroz y bajar un poco el fuego
+
+cuando este, sacarlo colandolo bajo agua fria para cortar la coccion
+
+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
+una taza de arroz por persona (salen 2 platos)
+
+
Shall I record this patch? (2/2) [ynWsfqadjk], or ? for help: y
Ahora nos pide un nombre corto para el patch
What is the patch name? Agregamos una receta para el arroz
Y, opcionalmente, podemos poner una descripcion larga
Do you want to add a long comment? [yn] n
Finished recording patch 'Agregamos una receta para el arroz'
Vemos el historial de cambios
# darcs changes
Tue May 17 22:45:00 ART 2005  Alberto Bertogli 
  * Agregamos una receta para el arroz
#
Ahora hagamos un cambio chico editando un poco el contenido, y antes de hacer un record queremos ver el diff, asi nos aseguramos que este todo bien; despues lo grabamos con un record.
Editamos un poco
# vi arroz
#
Vemos los cambios
# darcs diff -u
diff -rN -u old-recetas/arroz new-recetas/arroz
--- old-recetas/arroz   2005-05-17 23:32:18.000000000 -0300
+++ new-recetas/arroz   2005-05-17 23:32:49.000000000 -0300
@@ -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
record
# darcs record
hunk ./arroz 2
-poner agua a hervir con sal (ponerle poca sal)
+poner agua a hervir con poca sal
Shall I record this patch? (1/2) [ynWsfqadjk], or ? for help: y
hunk ./arroz 11
-cuatro tazas de agua x una de arroz
+cuatro tazas de agua por una de arroz
Shall I record this patch? (2/2) [ynWsfqadjk], or ? for help: y
What is the patch name? Unos pequeños cambios.
Do you want to add a long comment? [yn] y
Aca abre el editor de texto y escribimos una descripcion un
poco mas larga
Finished recording patch 'Unos pequeños cambios.'
#
Ahora hacemos otros cambios mas que creemos que estan bien, pero despues llamamos a nuestra mama y ella nos grita "Horror! No hagas eso nene que se te va a quemar todo", asi que queremos volver a como estabamos antes de empezar.
Vamos a mostrar ahora la salida un poco resumida, para no cargar de cosas que ya vimos y no son relevantes.
Primero editamos
# vi arroz
# darcs diff -u
[...]
#
Aca llamamos a nuestra mama, y se horroriza. Volvemos todo para
atras, hasta el ultimo record que hicimos
# darcs revert
(nos muestra los cambios uno por uno, como cuando hacemos un
record, y elegimos que volvemos atras y que no)
[...]
Shall I revert this patch? (1/1) [ynWsfqadjk], or ? for help: y
Do you really want to do this? y
Finished reverting.
#
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.
# darcs mv arroz arroz-solo
# ls -l
total 16
4 -rw-r--r--  1 root root  347 May 17 23:51 arroz-solo
4 drwxr-xr-x  6 root root 4096 May 18 00:14 _darcs
#
Bueno, ya vimos bastante acerca de como trabajar solos, salgamos un poco al mundo y veamos que hay ahi afuera.