]> git.llucax.com Git - personal/documentos.git/blob - charla_scm/ejemplos/darcs/2-comun.html
El patilludo y su frase célebre sobre la estratósfera.
[personal/documentos.git] / charla_scm / ejemplos / darcs / 2-comun.html
1 <html>
2 <head>
3 <title>darcs :: Ejemplo 2</title>
4 <link rel="stylesheet" type="text/css" href="../style.css">
5 </head>
6 <body>
7
8 <h2>Ejemplo 1 - Vemos la luz</h2>
9
10 Ahora que ya sabemos operar con las cosas mas comunes, vamos a ver como
11 interactuamos con otros repositorios, sean o no nuestros.<p>
12
13 El primer ejemplo va a ser obtener un repositorio existente, que esta
14 publicado por web. Recordemos que darcs no depende de como se publiquen,
15 podrian ser locales, remotos por web, etc. Si en lugar de hacer esto,
16 hicieramos un "cp -a", o nos lo pasaran en un archivo comprimido seria igual
17 de valido.<br>
18 Vamos a usar un repositorio real, chico y con pocos cambios.<br>
19
20 <pre>
21 # darcs get http://auriga.wearlab.de/~alb/repos/libfilo
22 Copying patch 23 of 23... done!
23 Applying patches to the "working" directory...
24 ..............................................
25 Finished getting.
26 #
27 <tt class=nota>Vemos que se bajo el repo</tt>
28 # ls -l
29 total 12
30 4 drwxr-xr-x  5 root root 4096 May 18 00:46 libfilo
31 # cd libfilo
32 # ls -l
33 total 44
34 drwxr-xr-x  7 root root  4096 May 18 00:50 _darcs
35 drwxr-xr-x  2 root root  4096 May 18 00:50 doc
36 -rw-r--r--  1 root root  1150 May 18 00:50 INSTALL
37 -rw-r--r--  1 root root 12706 May 18 00:50 libfilo.c
38 -rw-r--r--  1 root root  2084 May 18 00:50 libfilo.h
39 -rw-r--r--  1 root root  1077 May 18 00:50 Makefile
40 -rw-r--r--  1 root root  1159 May 18 00:50 README
41 drwxr-xr-x  2 root root  4096 May 18 00:50 tests
42 #
43 <tt class=nota>Revisamos los ultimos 5 cambios, de chusmas nomas</tt>
44 # darcs changes --last=5
45 Wed Apr 27 18:39:46 ART 2005  Alberto Bertogli &lt;albertogli@telpin.com.ar&gt;
46   tagged 0.11
47
48 Wed Apr 27 18:10:46 ART 2005  Jose Aureliano Buendia &lt;jaureliano@buendia.com&gt;
49   * Force the library to be compiled with LFS support.
50
51 Wed Apr 27 18:10:15 ART 2005  Remedios Moscote &lt;remedios@moscote.com&gt;
52   * Update the README to add the new manpage.
53
54 Wed Apr 27 18:04:24 ART 2005  Alberto Bertogli &lt;albertogli@telpin.com.ar&gt;
55   * Add an INSTALL document.
56
57 Wed Apr 27 18:04:09 ART 2005  Alberto Bertogli &lt;albertogli@telpin.com.ar&gt;
58   * Add manpage support in the Makefile.
59 #
60 </pre>
61
62 Notemos que el ultimo cambio es distinto, se llama "tag" y lo usamos para
63 versionar el repositorio, poniendole marcas con nombres a medida que
64 querramos, que refieren al estado del repositorio en ese momento. Se hacen con
65 "darcs tag".<p>
66
67 Un rato despues queremos actualizar nuestro repositorio, bajandonos cualquier
68 cambio que este en el remoto que nosotros no tengamos.<br>
69
70 <pre>
71 <tt class=nota>Le pasamos como primer parametro el repositorio del cual
72 queremos ver los cambios, y si lo omitimos usa el ultimo que usamos.</tt>
73 # darcs pull
74 Pulling from "http://auriga.wearlab.de/~alb/repos/libfilo"...
75 No remote changes to pull in!
76 #
77 <tt class=nota>No habia nada que traer! Pero mas tarde, volvemos a probar</tt>
78 # darcs pull
79 Wed May 18 01:01:00 ART 2005  Amaranta Buendia &lt;amaranta@buendia.com&gt;
80   * Sacar prints de debug innecesarios.
81 Shall I pull this patch? (1/1) [ynWvxqadjk], or ? for help: y
82 Finished pulling and applying.
83 #
84 </pre>
85
86 Ahora trabajamos un poco nosotros en el repositorio, haciendo algunos records
87 como ya vimos. Y despues de un rato, cuando estamos conformes, decidimos
88 mandarle a un amigo nuestro los cambios, para que los mire y nos diga que le
89 parecen.<br>
90 Vamos a hacer dos alternativas: o dejar que darcs mande el mail directamente,
91 o que nos genere un archivo que nosotros mandamos como attach con nuestro
92 mailer.<br>
93 El envio siempre se hace respecto de un repositorio remoto, y mandamos lo que
94 esta en el nuestro que no este en el otro. En este caso enviamos contra el
95 publicado.<br>
96
97 <pre>
98 <tt class=nota>Alternativa 1: darcs manda el mail</tt>
99 # darcs send http://users.auriga.wearlab.de/~alb/repos/libfilo
100 Wed May 18 01:01:00 ART 2005  Aureliano Buendia &lt;aureliano@buendia.com&gt;
101   * Un cambio poco relevante.
102 Shall I send this patch? (1/1) [ynWvxqadjk], or ? for help: y
103
104 What is the target email address? Arcadio Buendia &lt;arcadio@buendia.com&gt;
105 Successfully sent patch bundle to Arcadio Buendia &lt;arcadio@buendia.com&gt;.
106 #
107 <tt class=nota>Aca, el mail se le envio a Arcadio con esos cambios</tt>
108 </pre>
109
110 <pre>
111 <tt class=nota>Alternativa 2: darcs nos deja un archivo para enviar adjunto</tt>
112 # darcs send -o /tmp/enviar http://users.auriga.wearlab.de/~alb/repos/libfilo
113 Wed May 18 01:01:00 ART 2005  Aureliano Buendia &lt;aureliano@buendia.com&gt;
114   * Un cambio poco relevante.
115 Shall I send this patch? (1/1) [ynWvxqadjk], or ? for help: y
116 #
117 <tt class=nota>Aca nos dejo el archivo "/tmp/enviar" con los cambios
118 seleccionados</tt>
119 </pre>
120
121 Ahora pensemos que a nosotros nos llega un mail con los cambios en un archivo
122 adjunto, el cual grabamos en /tmp/para_aplicar y queremos aplicar a nuestro
123 repositorio.<br>
124
125 <pre>
126 # darcs apply /tmp/para_aplicar
127 Finished applying...
128 #
129 <tt class=nota>Termino de aplicar, miramos el changelog de curiosos nomas</tt>
130 # darcs chan --last=2
131 Wed May 18 00:24:00 ART 2005  Apolinar Moscote &lt;apolinar@moscote.com&gt;
132   * Reordenamos las funciones, porque si.
133
134 Wed May 18 01:01:00 ART 2005  Aureliano Buendia &lt;aureliano@buendia.com&gt;
135   * Un cambio poco relevante.
136 #
137 </pre>
138
139 No hay muchas mas operaciones básicas que estas, la gracia del asunto esta en
140 como la combinacion de las mismas puede presentar situaciones delicadas, que
141 vamos a ver un poco en el siguiente y ultimo ejemplo.<p>
142
143 </body>
144 </html>
145