Usando SVN

 

En un post anterior comentaba sobre herramientas para control de código fuente, y entre ellas estaba probando Subversion (SVN) la cuál explicaré ahora un poco mas a detalle:

Herramientas

Subversion (de ahora en adelante SVN) es una herramienta para  el control de código fuente, independiente de la tecnología de desarrollo o IDE. Para la administración del servidor y cliente se usa principalmente la línea de comandos, pero también existe herramientas visuales tanto para el lado del servidor como del cliente que nos facilitan en el trabajo:

  • VisualSVN: Permite configurar y administrar de forma simple y rápida el servidor.
  • TortoiseSVN: Excelente herramienta de cliente para SVN, se integra con el shell de Windows.
  • Desde luego que también necesitamos descargar e instalar Subversion.

Repositorios

SVN permite crear varios repositorios, por ejemplo podemos tener dos:

  • DevTeam”: Donde se almacena la línea principal de desarrollo de nuestras aplicaciones.
  • Sandbox”: Repositorio personal donde puedo subir cosas personales de prueba o de investigación.

Usando VisualSVN también podemos configruar el servidor para que soporte comunicación segura via el protocolo Https, y la autenticación y autorización integrada a un servidor LDAP, por lo que podemos usar nuestras credenciales del red para entrar al servidor.

 

Proyectos y su organización

Los proyectos de desarrollo se crean dentro de los Repositorios, normalmente cada proyecto nuevo tiene la siguiente estructura inicial: branches, tags y trunk, que son simplemente carpetas que nos ayudan a organizar el proyecto y se recomienda que todos tengan esa estructura:

 

Trunk

Dentro de esta carpeta se almacena todo el código del proyecto, el que está constantemente siendo modificado por el equipo de desarrollo.

Branches

Permite tener ramificaciones del proyecto, por ejemplo: si tenemos una primera versión de la aplicación lista para que sea probada crearíamos un branch llamando “Certificacion-1.0” con una copia del contenido del “trunk”. En este punto tendríamos dos líneas de desarrollo: el “trunk” donde se seguirían agregando nuevas funcionalidades y el branch “Certificacion-1.0” donde se daría soporte a la primera versión del producto, como la corrección de bugs. SVN nos permite sincronizar el trunk con cualquier branch y viceversa, de al forma que si se detecta un bug en el branch “Certificacion-1.0”´ el código que lo corrige (llamando ChangeSet) se lo puede fusionar al trunk principal. Una vez que se finalice el proceso de pruebas se puede reintegrar todo el branch al trunk para fusionar los cambios.

TIP: No es bueno esperar al último momento para fusionar las dos ramas ya que se podrían dar grandes conflictos, es mejor hacerlo con anticipación, cada cierto tiempo y por grupos para evitar problemas en el futuro.

Tags

Esta carpeta nos permite representar estados del proyecto que están listos para ser entregados, por ejemplo: “Version-1.0”, “Version-1.1”, “Version-2.0”. Siguiendo el ejemplo anterior: luego de corregir todos los incidentes del branch “Certificacion-1.0” crearíamos un Tag  nuevo llamado “Version-1.0” con el contenido del branch y, posteriormente borraríamos el branch “Certificacion-1.0”.

 

Ignorar archivos y carpetas

SVN puede ser configurado para no incluir en el repositorio los archivos o carpetas que le especifiquemos, para esto se usan propiedades que se configuran en el lado del cliente. Estas propiedades pueden ser exportadas para que otro cliente las aplique.

image

IMPORTANTE: Si un archivo ya fue subido al servidor, y luego se lo agrega en la lista de elementos que se deben ignorar, SVN no hará caso a esa propiedad ya que tienen prioridad los elementos que ya están bajo el control de código fuente, es decir SVN seguirá versionando el archivo.

 

TortoiseSVN

TortoiseSVN es una herramienta muy buena que se integra al shell de Windows y permite interactuar con el repositorio, nos permite entre otras cosas:

  1. Crear proyectos en el repositorio
  2. Importar contenido
  3. Actualizar contenido
  4. Agregar propiedades
  5. Crear branches y tags
  6. Comparar versiones
  7. Resolver conflictos entre archivos
  8. Deshacer cambios

3 comentarios to “Usando SVN”

  1. Necesito ayuda con el tortoise especificament con los branhes, tags y trunk de modo a organizar mis proyectos. puedo contar con tu super ayuda’?

  2. Claro, adivino q lo básico ya conoces, en trunk es donde pones el codigo mientras vas desarrollando, en tag pones una foto o snapshop del estado del proyecto en algun momento, por ejemplo un snapshop puede ser “Beta1” , y estos no se modifican. El branch usas para abrir una linea paralela de desarrollo, por ejemplo si liberas una primer version de proyecto (creas tag y branch), de tal forma q en el trunk sigues desarrollando nuevos features, y en el branch das soporte a la version liberada (como correcion de bugs), luego estos fixes se integran de regreso al trunk y liberas una nueva versión (otro tag, y el branch q abriste lo cierras), y repites el proceso. Cualquier duda nos comentas!

  3. de Branch a trunk Says:

    Buenos días tengo actualmente un trunk y abri un branch para haer un nuevo desarrollo o ajustes a la versión que estaba en el trunk , ahora quiero subir los cambios que hice en el branch al trunk pero no se como se debe hacer, me puede alguien ayudar con esto por favor

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: