]> git.llucax.com Git - personal/documentos.git/blob - charla_scm/ejemplos/svn/1-basico.html
charla_scm: Convertir ISO-8859-1 a UTF-8
[personal/documentos.git] / charla_scm / ejemplos / svn / 1-basico.html
1 <html>
2 <head>
3 <title>darcs :: Ejemplo 1</title>
4 <link rel="stylesheet" type="text/css" href="../style.css">
5 </head>
6 <body>
7
8 <h2>Ejemplo 1 - En la cueva</h2>
9
10 Yadda, yadda, yadda (mismo ejemplo 1 que en darcs)
11
12 <pre>
13 <tt class=nota>Creamos el repo</tt>
14 # svnadmin create repo
15 # cd repo
16
17 <tt class=nota>Vemos que se crea el directorio especial</tt>
18 # ls -l repo
19 total 28
20 drwxr-xr-x  2 guestlabi guestlabi 4096 2005-05-18 13:49 conf
21 drwxr-xr-x  2 guestlabi guestlabi 4096 2005-05-18 13:49 dav
22 drwxr-sr-x  2 guestlabi guestlabi 4096 2005-05-18 13:49 db
23 -r--r--r--  1 guestlabi guestlabi    2 2005-05-18 13:49 format
24 drwxr-xr-x  2 guestlabi guestlabi 4096 2005-05-18 13:49 hooks
25 drwxr-xr-x  2 guestlabi guestlabi 4096 2005-05-18 13:49 locks
26 -rw-r--r--  1 guestlabi guestlabi  379 2005-05-18 13:49 README.txt
27 #
28 </pre>
29
30 Esto es un repositorio central, en el caso de usarlo nosotros solos es un
31 poco molesto porque hay que obtener una WC para trabajar en él.
32
33 <pre>
34 <tt class=nota>Obtenemos un WC</tt>
35 # svn co file://$PWD/repo wc
36 #
37 </pre>
38
39 Ahora creamos la estructura básica para branches (en este caso es un poco
40 overkill, pero lo hacemos a modo demostrativo).
41
42 <pre>
43 <tt class=nota>Obtenemos un WC</tt>
44 # cd wc
45 # svn mkdir trunk
46 A         trunk
47 # svn mkdir branches
48 A         branches
49 # svn mkdir tags
50 A         tags
51 #
52 <tt class=nota>Hacemos un commit para poner registrar la estructura</tt>
53 # svn ci -m 'Estructura general del repositorio.'
54 Añadiendo      branches
55 Añadiendo      tags
56 Añadiendo      trunk
57 #
58 </pre>
59
60 Ahora agregamos el primer archivo<br>
61
62 <pre>
63 <tt class=nota>Creamos un archivo nuevo editandolo</tt>
64 # cd trunk
65 # vi arroz
66 #
67 <tt class=nota>Lo incorporamos al repositorio</tt>
68 # svn add arroz
69 A         arroz
70 #
71 <tt class=nota>Vemos el estado del repositorio</tt>
72 # svn st
73 A         arroz
74 #
75 </pre>
76 <p>
77
78 Y volvemos a hacer un commit para grabar el cambio en el repositorio:
79
80 <pre>
81 # svn ci -m 'Nueva receta para hacer arroz.'
82 Añadiendo      trunk/arroz
83 Transmitiendo contenido de archivos .
84 Commit de la revisión 2.
85 #
86 </pre>
87
88 Vemos el historial de cambios<br>
89
90 <pre>
91 # svn log arroz
92 <tt class=nota>Muestra sólo las revisiones en dónde cambió este archivo</tt>
93 ------------------------------------------------------------------------
94 r2 | guestlabi | 2005-05-18 15:31:13 -0300 (mié, 18 may 2005) | 1 line
95
96 Nueva receta para hacer arroz.
97 ------------------------------------------------------------------------
98 #
99 </pre>
100
101 Ahora hagamos un cambio chico editando un poco el contenido, y antes de hacer
102 un commit queremos ver el diff, asi nos aseguramos que este todo bien; despues
103 lo grabamos con un commit.<br>
104
105 <pre>
106 <tt class=nota>Editamos un poco</tt>
107 # vi arroz
108 <tt class=nota>Vemos qué cambió</tt>
109 # svn st
110 M      arroz
111 #
112 <tt class=nota>Vemos los cambios</tt>
113 # svn diff
114 Index: arroz
115 ===================================================================
116 --- arroz       (revisión: 2)
117 +++ arroz       (copia de trabajo)
118 @@ -1,5 +1,5 @@
119
120 -poner agua a hervir con sal (ponerle poca sal)
121 +poner agua a hervir con poca sal
122
123  cuando hierva agregar el arroz y bajar un poco el fuego
124
125 @@ -8,7 +8,7 @@
126  ponerle aceite, puede ser de oliva; poner tambien un chorrin en la fuente
127  antes, abajo del arroz
128
129 -cuatro tazas de agua x una de arroz
130 +cuatro tazas de agua por una de arroz
131  una taza de arroz por persona (salen 2 platos)
132
133 #
134 <tt class=nota>Nos parecio bien lo que ibamos a cambiar, asi que hacemos el ci</tt>
135 # svn ci -m 'Unos pequeños cambios.'
136 Enviando       trunk/arroz
137 Transmitiendo contenido de archivos .
138 Commit de la revisión 3.
139 #
140 </pre>
141
142 Ahora hacemos otros cambios más que creemos que estan bien, pero después
143 llamamos a la mamá de Alberto y ella nos grita "Horror! No hagas eso nene que se te
144 va a quemar todo", así que queremos volver a como estabamos antes de
145 empezar.<br>
146 Vamos a mostrar ahora la salida un poco resumida, para no cargar de cosas que
147 ya vimos y no son relevantes.<br>
148
149 <pre>
150 <tt class=nota>Primero editamos</tt>
151 # vi arroz
152 # svn diff
153 [...]
154 #
155 <tt class=nota>Aca llamamos a la mamá de Alberto, y se horroriza. Volvemos todo para
156 atrás, hasta el último commit que hicimos</tt>
157 # svn revert arroz
158 <tt class=nota>(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)</tt>
159 Se revirtió 'arroz'
160 #
161 </pre>
162
163 Pero claro, a medida que pasa el tiempo nos vamos poniendo mas cancheros con
164 el arroz, y decidimos que la receta del arroz tal como esta ahi deberia
165 llamarse "arroz-solo", asi que la renombramos.
166
167 <pre>
168 # svn mv arroz arroz-solo
169 <tt class=nota>Notar que el mv es un copy + delete, pero como el copy conserva la historia, no hay ningún problema.
170 A         arroz-solo
171 D         arroz
172 # ls -l
173 total 4
174 -rw-r--r--  1 guestlabi guestlabi 358 2005-05-18 15:49 arroz-solo
175 #
176 </pre>
177
178 Bueno, ya vimos bastante acerca de como trabajar solos, salgamos un poco al
179 mundo y veamos que hay ahi afuera.<p>
180
181 </body>
182 </html>
183