Lo Que Yo Se de SVN

33
 Lo que yo sé de SVN Juan Delgado – Zárate zarate.tv – dandolachapa.com – loqueyosede.com Traducción por Cay Garrido – ventdav al.com Lo que yo sé de SVN - 1/33

Transcript of Lo Que Yo Se de SVN

Page 1: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 1/33

Lo que yo sé de SVN

Juan Delgado – Záratezarate.tv – dandolachapa.com – loqueyosede.com

Traducción por Cay Garrido – ventdaval.com

Lo que yo sé de SVN - 1/33

Page 2: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 2/33

Í  ndice 

 – Introducción

 –

Aviso – Agradecimientos

 – Licencia

 – Introducción a SVN

 – Definición

 – Cómo funciona SVN

 – Glosario

 – Trabajando con SVN

 – Instalando Subversion

 – Creando tu repositorio

 – Rutina diaria con SVN

 – Checkout

 – Add y commit

 – Update (actualizar)

 – Revert (deshacer cambios)

 – Tag (etiquetar)

 – Conflictos

 – Cosas molonas que hacer con Subversion un domingo por la mañana

 – Actualizar WordPress de forma sencilla

 – Tweetea tus commits usando SVN hooks

 – Añadir información de SVN a tus archivos

 – Integrar SVN con sistemas de gestión de bugs – Enlaces

 – Clientes SVN

 – Documentación

 – Tutoriales y otros artí culos

 – Miscelánea

Aviso 

Este documento no está terminado aún está en desarrollo, me encantarí a recibir sugerencias,

mejoras o correcciones.

Tened en cuenta que no soy ningún experto en control de versiones y puedo estar equivocado.

Recomiendo ver este artí culo más como las explicaciones de un compañero de trabajo que lleva

unos años usando control de versiones, ni más ni menos. Si ves algún error, por favor ponte en

contacto conmigo en cuentame arroba zarate . tv.

 Lo que yo sé de SVN está concebido como punto de entrada para usuarios noveles aunque puede

también ayudar a usuarios intermedios. Dudo mucho que le enseñe algo a usuarios avanzados.

Lo que yo sé de SVN - 2/33

Page 3: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 3/33

Agradecimientos 

Gracias a todas las personas que comparten conocimiento de forma gratuita. Internet se sale.

Licencia 

Esta obra está bajo una licencia Reconocimiento-Compartir bajo la misma

licencia 2.5 España de Creative Commons. Para ver una copia de esta licencia,

visite http://creativecommons.org/licenses/by-sa/2.5/es/ o envie una carta a

Creative Commons, 171 Second Street, Suite 300, San Francisco, California

94105, USA.

O en la web de Creative Commons:

http://creativecommons.org/licenses/by-sa/2.5/es/ 

NOTA: Este libro es una traducción del original What I know about SVN que se puede encontrar en:

http://zarate.tv/articles/what-i-know-about-svn/ 

Eso implica que algunos párrafos o palabras pueden sonar extraños ya que fueron escritos

originalmente en inglés. Eso sin contar con el abundante número de extranjerismos que pueden

convertir la lectura en castellano en menos... natural.

Traducir es siempre una tarea complicada, citando a mr Alberto Romero:

Traduce interfaces, no párrafos. Si alguien en mi situación (”hola, no soy traductor ni bilingüe

ni tengo experiencia adaptando un programa a otro idioma y, bueno, en realidad lo que me

apetece es irme a la playa”) me pidiera un consejo, serí a ése: cuidado con ponerse a traducir

palabra por palabra o párrafo por párrafo. Si te atascas con un texto, prueba a coger un trozo más

grande de texto, o mejor, pregúntate algo como “si esta pantalla hablara inglés, ¿cómo pedirí a a

la persona que está enfrente que hiciera aquello para lo que la pantalla está diseñada?”

Hemos intentado aplicar esto, pero no siempre es f ácil. Aceptamos con humildad cualquier consejo

u observación sobre el tema. ¡Gracias!

Lo que yo sé de SVN - 3/33

Page 4: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 4/33

Introducci ó n 

De la Wikipedia: 

Version Control Systems (VCS) or Source Code Management (SCM) is the management of 

multiple revisions of the same unit of information.

Traducción:

Sistemas de Control de Versiones (VCS) o Gestión de Código Fuente (SCM) es la gestión de

multiples revisiones de una misma unidad de información.

Y por “unidad de información” entendemos ficheros .as, .fla, imágenes, sonidos, etc... Cualquier

tipo de fichero puede ser sometido a control de versiones.

Utilizar control de versiones suena bien, pero en realidad se reduce a BUSCAR CULPABLES:

 

(Créditos de la foto)

Usando control de versiones puedes saber QUIÉN hizo QUÉ, CUÁNDO y POR QUÉ. Esto es

especialmente útil por ejemplo al solucionar bugs. Muchas veces el código no habla por si mismo y

algo que no es obvio puede dejarte mirando el monitor preguntándote por qué se hace esa llamada.

Bueno, abre tu cliente de control de versiones y averigua quién la añadió. Ahora ya puedes enviarle

al responsable un email y preguntarle.

El control de versiones es también como una MÁQUINA DEL TIEMPO que puedes usar para

volver atrás. De hecho, aquí hay una foto de uno de los primeros clientes de un sistema de control de

versiones:

Lo que yo sé de SVN - 4/33

Page 5: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 5/33

El control de versiones te deja volver a versiones anteriores de tus archivos. No sólo a versiones

donde ese maldito bug no estaba presente, sino también por ejemplo al conjunto de ficheros exactos

que enviaste a un cliente (si los etiquetaste en su momento, por supuesto, lo veremos más adelante).

Hay muchos sistemas sistemas de control de versiones disponibles pero sobrepasa el ambito de este

documento revisarlos todos. Nos centraremos en Subversion o SVN porque es uno de los VCS más

simples y conocidos. Si quieres más información sobre otros sistemas y las diferencias entre ellos

échale un ojo a la sección de Enlaces.

Aunque el control de versiones demuestra todo su poder cuando se trabaja en equipos es tambien

muy útil si trabajas solo. Ya sea como desarrollador, diseñador, ejecutivo de cuentas, etc... Si alguna

vez has visto en tus carpetas algo como:

 – Propuesta_Final.doc

 – Propuesta_Final_modificaciones.doc

 – Propuesta_Final_modificaciones_b.doc

 – Propuesta_Final_enviado_al_cliente.doc

 – ...

Entonces necesitas control de versiones ya que va a gestionar esas diferencias de una forma muchomás limpia. Y lo hará mucho mejor. Algunas suites de oficina como Google Docs están empezando

a integrar control de versiones automático por lo que seguro que algo parecido aparecerá en Office u

OpenOffice en un futuro no muy lejano.

Cómo funciona SVN

SVN es un VCS centralizado (en lugar de distribuido) lo que significa que hay un sitio central

(llamado repositorio o “repo”) que hace de “copia maestra”. La gente accede al repositorio central y

obtiene una copia “limpia” de lo que haya en él. Una vez hechas las modificaciones se “suben”

Lo que yo sé de SVN - 5/33

Page 6: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 6/33

(commit) al repositorio haciendo posible que el resto de personas las obtengan después al actualizar.

Al repositorio se accede con un “cliente”. Clientes hay muchos y depende de cada uno elegir el que

más le guste. Si trabajas con Windows lo mas seguro es que uses TortoiseSVN. Si usas un Mac

puede que Versions. Y si estás en Linux probablemente la lí nea de comandos aunque también hay

clientes gráficos como RapidSVN. Pruébalos y elige el que más te guste.

Al ser un VCS centralizado Subversion necesita acceso al repositorio para ciertas tareas. Esto

significa que si tu repositorio está online necesitarás conexión a internet para poder hacer commits,

updates, etc...

Glosario

Aprender a usar uno de los clientes está bien, pero es mucho más importante aprender cómo

funciona realmente SVN. Cada cliente tiene sus pros y contras y algunos son mejores que otros. Los

puedes ver como navegadores, lo que realmente importa es aprender HTML no IE (bueno,

especialmente no IE).

Así que lo mejor es que te tomes un momento para aprender la terminologí a básica de SVN, la cual,

por cierto, tiene mucho en común con otros sistemas de control de versiones:

 – Checkout: Obtiener una copia limpia del repo. Normalmente se hace una vez por proyecto.

 – Commit: Sube tus cambios al repositiorio. Y por cambios nos referimos a cualquier diferencia

entre tu copia local y el repositorio: agregar/borrar/renombrar archivos o carpetas, modificar

ficheros, etc... Cualquier cambio que hagas a tu copia local NO llegará al repositorio hasta

que hagas un “commit”.

 – Add (agregar): Si quieres agregar nuevos ficheros al repo primero hay que hacer un “add” a

traves de SVN. Después “commit”.

 – Update (actualizar): Update actualiza tu copia local con los ultimos cambios del repo. SVN

intentará “combinar” o “fusionar” ficheros cuando sea posible pero puede haber conflictos (más

información en la sección Conflictos).

 – Revert (deshacer cambios): Cuando quieres deshacerte de los cambios locales y obtener una

copia limpia del repo.

 – trunk (tronco), tags (etiquetas) y branches (ramas). Un repositorio de SVN tiene normalmente 3

carpetas/secciones diferentes:

 – El trunk (tronco) es donde se hacen la mayorí a de los cambios, donde se hace el trabajo

diario. Normalmente se le considera “inestable” en el sentido de que el código no se haprobado o no todas las caracterí sticas estan implementadas.

 – tags (etiquetas). Cuando el trunk es estable o se ha llegado a un hito importante se suele

crear una etiqueta. Puedes ver las etiquetas como fotos de un proyecto. Una vez tomada es

fija, no se deberí an hacer cambios. Tags tí picos son “0.3”, “RC 1”, etc., pero si estás

inspirado puedes usar tags como “GreatWhite”, “CortoCircuito”, etc.

 – branches (ramas). Cuando un desarrollador necesita implementar una caracterí stica de

cierta magnitud que puede interferir demasiado con el trunk pero no quiere hacerlo en local

(por ejemplo porque la caracteristica sea implementada en equipo) se puede crear una rama.

Al contrario que las etiquetas, los desarrolladores actualizan continuamente las ramas hasta

que el problema está resuelto o la nueva caracterí stica implementada. Una vez resuelto la

Lo que yo sé de SVN - 6/33

Page 7: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 7/33

rama se fusiona o combina con el trunk. Esos sí , SVN es conocido por no combinar ramas

muy bien, por tanto se suele evitar. No es el caso de otros sistemas de control de versiones.

Trabajando con SVN 

Instalando Subversion

En Windows TortoiseSVN instala todo lo necesario, así que deberí a ser suficiente.

La mayorí a de las distribuiciones de Linux vienen con el cliente por lí nea de comandos instalado, lo

mismo que MacOSX. Sin embargo, si prefieres un cliente gráfico, puedes encontrar algunos en la

seccion de Enlaces.

Creando tu repositorio

Crear un repositorio SVN es muy, muy f ácil. Los repositorios SVN NO necesitan un servidor, sólo

espacio en el disco duro. También funcionan bastante bien en carpetas compartidas en red.

Usando Tortoise simplemente haz click con el botón derecho en una carpeta vací a y selecciona

TortoiseSVN > Create repository here:

Lo que yo sé de SVN - 7/33

Page 8: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 8/33

Y ya está, es así de simple. El comando SVN es svnadmin create:

svnadmin create REPO_PATH

REPO_PATH debe ser una ruta real en el disco duro, no una URL. Algo así como C:\repos\project1

ó /home/user/repos/project1.

Si quieres tener acceso al repositorio donde sea que estés, sin una conexion VPN, necesitarás

ponerlo bajo un servidor Apache. Más información en la sección de Enlaces.

Una vez que el repositorio ha sido creado, debes crear manualmente las carpetas trunk, tags y

branches. Haz click con el botón derecho en la carpeta que acabas de crear (y que ahora está llenade cosas internas de SVN) y selecciona "Repo-browser":

Lo que yo sé de SVN - 8/33

Page 9: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 9/33

Ahora haz click en la dirección superior y selecciona "Create folder":

Lo que yo sé de SVN - 9/33

Page 10: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 10/33

Pon "trunk" (sin comillas) como nombre, pon un comentario ("Configuración inicial" bastará si no

te vienen ideas) y presiona OK. Repite el mismo proceso para “tags” y “branches”. Al final tu

repositorio debe quedar así :

Lo que yo sé de SVN - 10/33

Page 11: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 11/33

Y ya tienes tu repositorio listo para trabajar.

Rutina diaria con SVN

Checkout 

Una vez tengas tu repo creado y listo (o si tienes la URL del proyecto) lo primero es hacer un

“checkout”:

Lo que yo sé de SVN - 11/33

Page 12: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 12/33

Primero creamos una carpeta sobre la cual trabajar (será nuestra copia local). Luego hacemos click 

con el botón derecho sobre ella y buscamos la carpeta con el repositorio que creamos en el paso

anterior usando el boton “...” al lado del campo "URL of repository":

Lo que yo sé de SVN - 12/33

Page 13: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 13/33

Selecciona la carpeta y presiona a OK:

Lo que yo sé de SVN - 13/33

Page 14: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 14/33

Una vez seleccionado, confirma que estas haciendo el checkout del trunk. Si tu cliente no ha

agregado “/trunk” agrégalo tú mismo:

Lo que yo sé de SVN - 14/33

Page 15: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 15/33

Ya está :) Ahora tienes una copia limpia del proyecto en tu carpeta local para poder empezar a

trabajar.

 

Lo que yo sé de SVN - 15/33

Page 16: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 16/33

El comando SVN es checkout:

svn co REPO_PATH/trunk 

Como has bajado tu propio proyecto vací o solamente habrá una carpeta oculta llamada “.svn”

(quizas no la veas, dependiendo de la configuracion de tu sistema). En esa carpeta SVN guarda la

información que necesita para trabajar. Por favor, escribe esto cuantas veces necesites:

* LA PRIMERA REGLA DEL CLUB SVN ES NO TOCAR LAS CARPETAS .SVN.

* LA SEGUNDA REGLA DEL CLUB SVN ES *NO* TOCAR LAS CARPETAS .SVN.

 

Lo que yo sé de SVN - 16/33

Page 17: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 17/33

De verdad, no se tocan.

Add y commit 

Para continuar con el ejemplo, crea un fichero de texto con cualquier contenido y guárdalo en la

carpeta en la que hiciste el checkout. Como SVN no sabe que debe seguirlo su icono aparece con un

sí mbolo de interrogación:

Lo que yo sé de SVN - 17/33

Page 18: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 18/33

Para agregarlo al repositorio debes agregarlo mediante SVN para que éste sepa que es un fichero

que debe controlar:

Lo que yo sé de SVN - 18/33

Page 19: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 19/33

Esto marcará el fichero como listo para ser subido al repositorio y el icono cambiará a un signo +.

IMPORTANTE: el fichero aun NO ha llegado al repositorio, debes hacer un commit:

Lo que yo sé de SVN - 19/33

Page 20: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 20/33

Después de hacer el commit el fichero tendrá un icono verde que nos dice que nuestra copia local es

idéntica a la que hay en el repositorio:

 

Lo que yo sé de SVN - 20/33

Page 21: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 21/33

Y ya está, listo. Este proceso es lo mismo que ejecutar los comandos add y commit:

svn add Hello World.txt

svn ci -m "Adding my first file!" Hello World.txt

Una nota sobre qué y cuándo debes hacer un commit:

When you commit a change to the repository, make sure your change reflects a single purpose:

the fixing of a specific bug, the addition of a new feature, or some particular task 

Traducción:

Cuando haces un commit de un cambio al repositorio asegúrate de que tus cambios persiguen un

único propósito: arreglar un bug, implementar una nueva caracterí stica o alguna tarea en

particular.

Sacado de Subversion best practices.

Lo que yo sé de SVN - 21/33

Page 22: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 22/33

También es importante ver la diferecia entre un mensaje de log bueno y uno malo:

MALO

bug arreglado

BUENO

Fix issue #1729: Que no se caiga porque falta un fichero.

* get_editor.c

(frobnicate_file): Comprobar que existe el fichero antes de “frobnicar”,

Recibe una ruta absoluta en vez de una relativa.

* do_thing.c

(frobnicate_things): Actualiza las llamadas a frobnicate_file.

Sacado de OSCON 2004, SVN best practices.

Update (actualizar) 

Si no trabajas solo necesitarás bajar los últimos cambios que otros miembros del equipo hayan

hecho:

 

Lo que yo sé de SVN - 22/33

Page 23: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 23/33

Que seria lo mismo que usar el comando SVN update:

svn update

IMPORTANTE: no se pueden hacer commits de ficheros a menos que se tenga la última revisión.

Es decir, si alguien hizo algún commit del mismo fichero que estás editando mientras hací as

cambios, estás obligado a actualizar tu copia antes de hacer commit de los tuyos.

Revert (deshacer cambios) 

A veces después de modificar un fichero decides que tus cambios no son correctos y quieres volver

a la versión del repositorio. Para hacer esto usa el comando revert:

 

Lo que yo sé de SVN - 23/33

Page 24: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 24/33

Esto deshará los cambios de tu copia local y dejará la ultima version del archivo que está en el

repositorio. Es equivalente a ejecutar el comando revert:

svn revert FILE_PATH

Tag (etiquetar) 

Etiquetar es como sacar una foto, una instantánea del proyecto. Normalmente uno etiqueta el

repositorio cuando se ha alcanzado un hito importante, o cuando se quiere crear un punto de

retorno.

Las etiquetas de Subversion (y las ramas) no son más que copias en un momento especí fico. Para

crear una, haz click con el botón derecho por ejemplo en la raí z de tu copia local y selecciona

TortoiseSVN > Branch/Tag:

Lo que yo sé de SVN - 24/33

Page 25: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 25/33

Esto creará una copia de tu copia local donde tú digas. Por ejemplo, vamos con algo sencillo, “0.1”:

Lo que yo sé de SVN - 25/33

Page 26: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 26/33

NOTA: se puede seleccionar la carpeta de la etiqueta (tag) usando el boton “...” o simplemente

modificando el campo “To URL” a mano, agregando el nombre de la nueva etiqueta al final.

Presiona OK y listo.

Para hacer un checkout de una etiqueta (tag) concreta sólo hay que referirse a ella al hacer el

checkout:

Lo que yo sé de SVN - 26/33

Page 27: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 27/33

En lugar de bajar el trunk se baja la etiqueta especificada.

Importante: no hay comando “tag” en SVN ya que las etiquetas (tags) y ramas (branches) son sólo

copias. Por tanto, para crear una etiqueta hay que usar el comando copy:

svn copy SOURCE_PATH DESTINATION_PATH

Algo así :

svn copy . REPO_PATH/tags/0.1

El “.” significa “directorio actual”.

Las etiquetas son MUY útiles como puntos de retorno y no hay que tener miedo a usarlas. Por

ejemplo:

 – Etiqueta tu repo cuando le envies algo a un cliente.

 – Etiqueta tu repo cuando liberes un “release” de tu producto.

Conflictos 

Cuando actualizas tu copia local, SVN baja todos los ficheros nuevos que se hayan añadido. Ademaś 

Lo que yo sé de SVN - 27/33

Page 28: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 28/33

también actualizará los fichero que ya tengas. Para actualizar ficheros existentes SVN necesita

combinar o fusionar el repositorio con tu copia local. A veces fusionar automáticamente los ficheros

no es posible porque hay conflictos. La mayorí a de las veces estos conflictos vienen porque dos

personas editaron la misma lí nea del mismo fichero con información diferente.

Despues de un update con conflictos verás algo así :

Ya que SVN no puede resolver el conflicto de forma automática tendrás que hacerlo manualmente.

Puedes usar “Tortoise Merge” (Tortoise > Edit conflicts) o hacerlo a mano. Lo hagas como lo hagas,

tendrás que decidir qué cambio es el bueno, SVN no puede hacerlo por ti. Una vez hecho, resuelve

el conflicto: 

Lo que yo sé de SVN - 28/33

Page 29: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 29/33

Eso deberí a eliminar los ficheros adicionales y ya podrás hacer commits de nuevo. Esto es lo mismo

que usar el comando resolved :

svn resolved FILE_PATH

Lo que yo sé de SVN - 29/33

Page 30: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 30/33

Cosas molonas que hacer con Subversion un domingo por la ma ñ ana 

A continuación una una pequeña lista de cosas avanzadas que se pueden hacer con Subversion,

algunas má

s sencillas que otras. La mayorí a tratan sobre enlazar autom

áticamente Subversion conotras tecnologí as utilizadas en el desarrollo de Software. Las mismas cosas se pueden hacer a mano,

pero al automatizar el proceso te aseguras de que a) no te olvidas de hacerlo, b) lo haces bien y c)

ahorras tiempo.

Actualizar WordPress de forma sencilla

Si tienes un blog seguramente sabes que mantener actualizada la versión es una tarea bastante

aburrida. Los chicos de Wordpress lo saben y por eso tienen un tutorial muy facilito sobre ello:

http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion

A no ser que quieras trastear con el código de Wordpress (más allá de la instalación tí pica) elije

instalar una versión estable.

Tweetea tus commits usando SVN hooks

NOTA DEL TRADUCTOR: (Tuitea tus comits usando esbien juks es una frase que apesta en

castellano pero no tengo una mejor traducción)

¿Sabes que puedes generar un Tweet cada vez que haces un commit? Los chicos de vi.vu te cuentan

cómo. Necesitas usar SVN hooks (más información en la sección de Enlaces) que no son más quescripts que se ejecutan automáticamente por diferentes eventos (commit, crear una etiqueta, etc.)

Usando SVN hooks puedes llamar a un script PHP (o Java o un archivo bat, depende del sistema

operativo sobre el que esté el repositorio) que se conecta a Tweeter creando un Tweet con la

información del commit. El proceso es algo como esto:

friki > commit > hook > script > tweet > el resto de frikis reciben la notificación

Más información aquí :

http://remeseiro.com/metadata/index.php/2007/10/25/enviando-commits-de-subversion-a-twitter/ 

http://quarkblog.org/2007/02/06/subversion-hooks/ 

Añadir información de SVN a tus archivos

Es posible configurar SVN para que “inyecte” información (número de revisión, quién hizo el

commit, etc.) a tus archivos.

Esto por ejemplo permite conocer esos datos simplemente mirando el código, no hace falta arrancar

el cliente de SVN. Más información:

Lo que yo sé de SVN - 30/33

Page 31: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 31/33

http://svnbook.red-bean.com/en/1.0/ch07s02.html

Integrar SVN con sistemas de gestión de bugs

Algunos clientes de SVN permiten enlazar un repositorio y un sistema de gestión de bugs. Más

información:

http://blog.platinumsolutions.com/node/102 

Lo que yo sé de SVN - 31/33

Page 32: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 32/33

Enlaces 

Algunos de los enlaces tocan temas avanzados de SVN que seguramente no necesites ahora mismo.

Mi consejo es que los leas de todas formas porque ayudan a tener una visión más amplia de lo que

se puede hacer.

Esto son sólo algunos de los enlaces que he recopilado escribiendo este tutorial. Como dije al

principio, muchas gracias a todos los que comparten conocimiento de forma gratuita.

Clientes de SVN

TortoiseSVN (Windows): http://tortoisesvn.tigris.org 

Rapid SVN (multiplataforma): http://rapidsvn.tigris.org 

SCPluing (Mac): http://scplugin.tigris.org 

Cornerstone (Mac, de pago): http://www.zennaware.com/cornerstone  Syncro (multiplataforma): http://www.syncrosvnclient.com  

Versions (Mac, de pago): http://www.versionsapp.com 

Documentación

Sitio oficial de Subversion:

http://subversion.tigris.org

Libro oficial de Subversion (es grande pero vale la pena para consultar):http://svnbook.red-bean.com

Listado de los comandos SVN:

http://svnbook.red-bean.com/en/1.1/ch09.html

SVN hooks:

http://svnbook.red-bean.com/en/1.1/ch05s02.html

Agregar propiedades de SVN a tus archivos:

http://svnbook.red-bean.com/en/1.0/ch07s02.html

Integrar SVN yApache:

http://svnbook.red-bean.com/en/1.1/ch06s04.html

Artí culo de la Wikipedia sobre sistemas de control de versiones:

http://en.wikipedia.org/wiki/Source_control

Artí culo de la Wikipedia sobre Subversion:

http://en.wikipedia.org/wiki/Subversion_(software)

Lo que yo sé de SVN - 32/33

Page 33: Lo Que Yo Se de SVN

5/12/2018 Lo Que Yo Se de SVN - slidepdf.com

http://slidepdf.com/reader/full/lo-que-yo-se-de-svn 33/33

Tutoriales y otros artí culos

Trucos con SVN hooks:

http://www.petefreitag.com/item/244.cfm

http://chicken.wiki.br/svn-post-commit-hooks 

Integración de SVN con sistemas de control de bugs (Bugzilla, Mantis, etc) :

http://blog.platinumsolutions.com/node/102

http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/doc/issuetrackers.txt (user: guest, password:

empty)

Collaborate and connect with Subversion:

http://www.alistapart.com/articles/collaboratewithsubversion

Listado de tutoriales sobre SVN:

http://www.subversionary.org/taxonomy/term/14

Mejores prácticas con Subversion:

http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html

5 SVN best practices:

http://www.iovene.com/5-svn-best-practices/ 

Cliente por lí nea de comandos para Windows (sin Tortoise):

https://www.projects.dev2dev.bea.com/Subversion%20Clients/CommandLineSVN.html

Miscelánea

Putty, un cliente SSH gratuito para Windows (necesario por ejemplo para instalar Wordpress con

SVN. Puede que primero tengas que contactar con tu hosting para obtener datos de acceso SSH):

http://www.chiark.greenend.org.uk/~sgtatham/putty/  

Listado de empresas que ofrecen hosting SVN gratuito y de pago:

http://www.subversionary.org/hosting/hosting-services  

Y no se me olvida que tengo que pedir permiso a Angus Blacksheep para usar su foto pero no tengo

una cuenta de Yahoo! ¿Alguien me echa una mano?

http://www.flickr.com/photos/43933977@N00/1455304619/ 

Lo que yo sé de SVN - 33/33