3 <title>darcs :: Ejemplo 2</title>
4 <link rel="stylesheet" type="text/css" href="../style.css">
8 <h2>Ejemplo 1 - Vemos la luz</h2>
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>
13 El primer ejemplo va a ser obtener un repositorio existente, que esta
14 publicado por web. Recordemos que svn tiene varios métodos de acceso
15 (local, ssh, protocolo propio, protocolo sobre webdav).<br>
16 Vamos a usar un repositorio real, chico y con pocos cambios.<br>
19 # svn co svn+ssh://luca@svn.llucax.hn.org/var/lib/svn/test wc_test
26 <tt class=nota>Vemos que se bajo el repo</tt>
29 lrwxrwxrwx 1 guestlabi guestlabi 8 2005-05-18 15:55 link -> mkfilter
30 -rwxr-xr-x 1 guestlabi guestlabi 427 2005-05-18 15:55 mkfilter
34 Para obtener la última versión...
38 <tt class=nota>No hay nada nuevo</tt>
43 Un rato más tarde, luego de que alguien modificó un archivo:
47 <tt class=nota>Obtenemos los últimos chagesets.</tt>
49 Actualizado a la revisión 4.
53 Ahora hacemos unos cambios, pero alguien más estuvo haciendo cambios y los
54 aplicó antes que nosotros. No importa, subversion, mientras pueda, hará un
59 <tt class=nota>Como cambió el mismo archivo que nosotros, antes debemos hacer un
60 update para que pueda hacer un merge de los cambios en el servidor a los
62 Enviando wc/trunk/arroz-solo
63 svn: Falló el commit (detalles a continuación):
64 svn: Out of date: '/trunk/arroz-solo' in transaction '6'
66 <tt class=nota>Hace el merge sin problemas (notar la G).</tt>
68 Actualizado a la revisión 5.
72 Finalmente, nuestro grupo humano no es perfecto, hubo falta de comunicación y 2
73 personas corregimos el mismo error (o un error en la misma línea, por ejemplo).
74 Subversion no puede hacer cargo de la situación y nos dice que hay conflicto.
78 <tt class=nota>No puede hacer el merge, <strong>PROBLEMAS</strong> (notar la C).</tt>
80 Actualizado a la revisión 6.
82 <tt class=nota>Subversion nos deja varios elementos para solucionar el problema:</tt>
86 -rw-rw---- 1 luca luca 471 2005-05-19 18:02 arroz-solo
87 <tt class=nota>El archivo con marcas de los conflictos (ya lo veremos en más detalle)</tt>
88 -rw-rw---- 1 luca luca 369 2005-05-19 18:02 arroz-solo.mine
89 <tt class=nota>Mi versión del archivo.</tt>
90 -rw-rw---- 1 luca luca 362 2005-05-19 18:02 arroz-solo.r5
91 <tt class=nota>La versión base de archivo, de donde surgió mi version y la nueva
92 con la que tiene el conflicto.</tt>
93 -rw-rw---- 1 luca luca 362 2005-05-19 18:02 arroz-solo.r6
94 <tt class=nota>La versión nueva del archivo que provoca el conflicto con mis
98 poner agua a hervir con sal (ponerle bastante sal)
100 cuando hierva agregar el arroz y bajar un poco el fuego
102 <tt class=nota>Hasta el "=======" es como está en mi versión.</tt>
103 <<<<<<< .mine
104 cuando este, sacalo colandolo bajo agua fria para cortar la cocción
106 <tt class=nota>Hasta el ">>>>>>> .r6" es como está en la nueva versión.<tt>
107 cuando este, sacalo colandolo bajo agua fría para cortar la coccion
108 >>>>>>> .r6
110 ponerle aceite, puede ser de oliva; poner tambien un chorrin en la fuente
111 antes, abajo del arroz
113 cuatro tazas de agua x una de arroz
114 una taza de arroz por persona (salen 2 platos)
118 <tt class=nota>Si me olvido que hubo un conflicto y quiero hacer un commit, el
121 svn: Falló el commit (detalles a continuación):
122 svn: Abortando el commit: '/mnt/burns/luca/documentos/charla_scm/ejemplos/svn/wc/trunk/arroz-solo' queda en conflicto
124 <tt class=nota>Editamos el archivo para eliminar el conflicto.</tt>
130 ===================================================================
131 colordiff 1.0.4 (http://colordiff.sourceforge.net/)
132 (C)2002-2004 Dave Ewart, davee@sungate.co.uk
134 --- arroz-solo (revisión: 6)
135 +++ arroz-solo (copia de trabajo)
138 cuando hierva agregar el arroz y bajar un poco el fuego
140 -cuando este, sacalo colandolo bajo agua fría para cortar la coccion
141 +cuando este, sacalo colandolo bajo agua fría para cortar la cocción
143 ponerle aceite, puede ser de oliva; poner tambien un chorrin en la fuente
144 antes, abajo del arroz
146 <tt class=nota>Finalmente avisamos al svn que resolvimos el conflicto (es
147 análogo a borrar todos los archivos que creó para resolverlo)</tt>
148 # svn resolved arroz-solo
149 Se resolvió el conflicto de 'arroz-solo'
152 <tt class=nota>Y hacemos el commit.</tt>
153 # svn ci -m "Corregido tilde"
154 Enviando trunk/arroz-solo
155 Transmitiendo contenido de archivos .
156 Commit de la revisión 7.
160 Listo, esta es uno de los problemas más complejos que se pueden presentar usando
161 subversion, sin incluir los merges entre 2 branches, pero no tienen más magia
162 que esto: si funciona bien, todos felices, si no, a resolver conflictos!