SlideShare a Scribd company logo
1 of 3
Download to read offline
094-097-DiseæoWeb-usr206.qxp             16/05/2008        02:27 p.m.      PÆgina 94




         WEBMASTERS                                                                                         RODRIGO GALÍNDEZ
         COORDINANDO VERSIONES DE CÓDIGO FÁCILMENTE                                                         rodrigogalindez@gmail.com




         CONTROL DE VERSIONES                                                                                             DISEÑADOR WEB, APASIONADO-



         USANDO SUBVERSION                                                                                                POR TODO LO QUE VAYA DESPUÉS
                                                                                                                          DE HTTP://




         EN UN AMBIENTE DE TRABAJO UNIPERSONAL, ES SENCILLO CONTROLAR EL VERSIONADO DE UN DOCUMENTO
         XHTML. PERO ¿QUÉ PASA CUANDO TRABAJAMOS EN EQUIPO? LES PRESENTAMOS SUBVERSION, UNA HERRA-
         MIENTA PARA FACILITAR LA COORDINACIÓN ENTRE GRUPOS DE TRABAJO.

         ▼ Seguramente, en algún momento de                código fuente, páginas o documentación. El      Como pueden observar, su uso en equipos de
         nuestra carrera profesional nos hemos pre-        artículo estará enfocado en un caso inicial,    trabajo está perfectamente justificado. De
         guntado lo siguiente: “¿Quién tiene la última     pero práctico, de utilización del software, y   cualquier manera, Subversion también es útil
         versión de este archivo XHTML?”, “¿cuáles         dejaremos los detalles puntiagudos a la cu-     como una herramienta de backup incremen-
         son los últimos cambios que se hicieron en        riosidad del lector.                            tal unipersonal. Imaginemos SVN como un
         las hojas de estilo?”, “¿cómo puedo evitar so-                                                    sistema de históricos con capturas en el có-
         brescribir el código fuente de mi compañe-        PRESENTANDO SUBVERSION                          digo fuente automáticas. Cada vez que en-
         ro?”. Si no tenemos un sistema confiable pa-      Como dijimos anteriormente, Subversion          viemos un archivo modificado al repositorio,
         ra mantener y coordinar versiones de código,      (SVN) es un sistema de control de versiones:    éste creará una copia de la versión anterior.
         responder a estas preguntas es casi imposi-       maneja los archivos y las carpetas de           Ninguna de las copias anteriores se perderá, por
         ble, y trabajar a ciegas puede ser el único ca-   un proyecto y sus modificaciones en el          lo que siempre podremos volver a una versión
         mino posible.                                     transcurso del tiempo. Fue creado en el         anterior de nuestros archivos si es necesario.
         En esta edición hablaremos de Subversion,         año 2000 en CollabNet Inc, con el objetivo      Es más, si estamos trabajando con un servi-
         tal vez el sistema más utilizado para contro-     de ser una alternativa real y mejorada a CVS    dor de Subversion ubicado en algún lugar de
         lar versiones de documentos, ya sean éstas        (Concurrent Versions System, un sistema de      Internet, digamos, un servidor alojado en los
                                                           control de versiones que era la solución de     Estados Unidos, tenemos una buena posibi-
                                                           facto en la época). Al igual que otros pro-     lidad de no perder los archivos originales por
         Subversion en la Web                              yectos exitosos de renombre, SVN es libre y     un desperfecto en nuestras computadoras.
         Tenemos la suerte de que, últimamente,            Open Source, ya que está distribuido bajo la    Como introducción, en este informe sola-
         vienen apareciendo servicios interesantes         licencia Apache.                                mente nos conectaremos a un repositorio
         basados en la Web para probar Subversion.         Subversion trabaja replicando el mode-          creado en nuestra propia máquina, pero en
         Algunos ofrecen cuentas gratuitas, limita-        lo cliente/servidor: uno o más clientes se      el recuadro Subversion en la Web pueden en-
         das en su funcionalidad, claro, y otros están     conectan a un servidor central que tiene la     contrar servidores alojados de Subversion
         destinados a un uso fuerte del sistema.           última copia del proyecto, como también co-     listos para probar.
         Los siguientes son los más interesantes:          pias de sus versiones anteriores, dentro de
                                                           lo que llamaremos un repositorio. El clien-     LO BÁSICO: CHECKOUT,
         Beanstalk (www.beanstalkapp.com)                  te pide la última versión disponible del pro-   UPDATE Y COMMIT
         Servicio nuevo y con buena interfaz, real-        yecto para poder trabajar. Los clientes hacen   Los tres comandos que usaremos con más
         mente muy fácil de usar. Es gratuito con          cambios y, por último, sincronizan sus copias   frecuencia al trabajar con Subversion son
         hasta 20 MB de almacenamiento. Se desta-          con el repositorio.                             svn checkout, svn update y svn commit.
         ca su excelente soporte. Es ideal para los
         que recién comienzan con Subversion.

         Roundhaus (www.roundhaus.com)
         Aunque la cuenta gratuita tiene sus limita-
         ciones, se destaca por ser uno de los pocos
         que ofrecen un servicio de integración con-
         tinua, lo cual lo convierte en algo más que
         un simple repositorio en la Web.                                                                               Figura 1.
                                                                                                                        La representación gráfica
         Google Code (http://code.google.com)                                                                           en la que podemos ver
         Dentro del amplio abanico de servicios gra-                                                                    un repositorio con tres
         tuitos de Google, se destaca Google Code,                                                                      clientes conectados.
         que ofrece hosting gratuito ilimitado con ac-                                                                  Subversion ordena
         ceso, claro, a Subversion.                                                                                     y facilita el trabajo.

            94                                                                                                                                      redusers.com
094-097-DiseæoWeb-usr206.qxp             16/05/2008       02:27 p.m.         PÆgina 95




      FOROS
      www.redusers.com/foros/webmasters




      Veamos en qué consisten:

      1) SVN CHECKOUT
      Descarga una copia privada de la última ver-
      sión del proyecto, es decir, una working copy,
      a nuestra máquina. Es lo primero que tene-
      mos que hacer al iniciar una sesión de tra-
      bajo con SVN.

      2) SVN UPDATE
      Como su nombre indica, se usa para actuali-
      zar nuestra working copy con los últimos
      cambios hechos por nuestros compañeros.
      Este comando debe ejecutarse a menudo para
      tener siempre una copia fresca del proyecto.

      3) SVN COMMIT
      Envía al repositorio los cambios que hicimos en
      nuestra copia privada. De más está decir que es
      una buena práctica, en cada commit, comentar
      los cambios que hicimos en la versión que es-
      tamos enviando. De esta manera, nuestros com-
      pañeros de equipo tendrán una buena ayuda so-
      bre qué es lo nuevo en la última versión que
      están descargando (los comentarios se pueden
      agregar usando el mismo comando commit o,
      como veremos más adelante, completando un         Figura 2. svnX, el cliente más popular en Mac, conectado a un repositorio.
      campo en una ventana).                            Fíjense en todas las versiones del proyecto (columna Rev #) y sus
      No se preocupen: todos estos comandos tie-        comentarios (columna Log Message).
      nen sus semejantes en la herramienta visual
      que usaremos en este artículo, TortoiseSVN,
      por lo que haciendo un par de clics evitare-      nosotros nos interesará por el momento son
      mos tipearlos en una ventana de terminal.         sus versiones nocturnas, públicamente dis-
      Sin embargo, lo importante en este punto es       ponibles mediante SVN.
      que entiendan el proceso de trabajar con          Primero, debemos bajar TortoiseSVN (gratui-
      Subversion, que en su concepción más              to, Open Source) de http://tortoisesvn.net/
      simple consiste en tres pasos: 1. checkout,       downloads. TortoiseSVN viene en un archivo
      2. update y 3. commit. Con el tiempo apren-       instalable .msi, y en versiones de 32 y 64 bits.
      deremos más comandos útiles para trabajar         En este paso también podemos bajar el pa-
      con el sistema, como svn diff, que permite        quete del idioma español. Nota: los usuarios
      buscar diferencias entre los archivos que es-     de Mac tenemos en svnX el cliente perfecto
      tamos subiendo.                                   para usa r Subversión, que se puede des-
                                                        cargar de http://rubyurl.com/RGbz. Todos los co-
      CONECTANDO                                        mandos de TortoiseSVN tienen sus equiva-
      AL REPOSITORIO                                    lentes en svnX, por lo que a los lectores
      DE WORDPRESS                                      “maqueros” les será sencillo adaptar las ins-
      Vamos a ver un ejemplo rápido para familia-       trucciones de este artículo. Ahora, una vez
      rizarnos con la herramienta: nos conectare-       descargada e instalada la herramienta en la
      mos al repositorio (de sólo lectura) de Word-     PC, nos conectarnos al servidor SVN de Word-
      Press. Como muchos saben, WordPress es el         Press. Para esto, crearemos una nueva car-
      CMS para weblogs más utilizado en la ac-          peta en alguna parte de nuestra PC que fun-        Figura 3. Un menu contextual de
      tualidad. Aunque se puede descargar direc-        cionará como working copy, o copia privada         Windows con ítems agregados por
      tamente desde www.wordpress.org, lo que a         del proyecto en que se trabaja.                    TortoiseSVN.


        redusers.com                                                                                                                 95
094-097-DiseæoWeb-usr206.qxp                 16/05/2008           02:27 p.m.       PÆgina 96




         WEBMASTERS
         COORDINANDO VERSIONES DE CÓDIGO FÁCILMENTE




                                                                  Eso es todo, ya podemos disfrutar de la úl-         Para esto, seguimos los mismos pasos que
                                                                  tima versión de WordPress en una carpeta            en el ejemplo anterior (conectando a Word-
                                                                  de nuestra PC. Veamos ahora cómo crear un           Press), pero esta vez, en vez de apuntar al
                                                                  repositorio y escribir en él.                       repositorio de WordPress, apuntamos a la
                                                                                                                      carpeta de nuestro repositorio creada en el
                                                                  CREANDO                                             punto anterior. TortoiseSVN descargará la
                                                                  UN REPOSITORIO                                      versión 0 del repositorio, es decir, no des-
                                                                  Una de las ventajas de TortoiseSVN es que fa-       cargará ningún archivo.
         Figura 4. La ventana                                     cilita la creación de repositorios locales. Lite-
         para hacer checkout.                                     ralmente, con un clic derecho en una carpeta        3) HACER ALGÚN CAMBIO
                                                                  determinada se puede crear un repositorio en        Ahora bien, crearemos un archivo nuevo de tex-
         Hacemos clic derecho en esa carpeta y                    segundos. Veamos un ejemplo completo. Los           to en la misma carpeta del punto anterior. Este
         Windows, además de las opciones habitua-                 pasos que debemos hacer son los siguientes:         archivo será luego nuestro primer commit.
         les de un menú contextual, nos mostrará dos
         opciones propias de la herramienta: [SVN                 1) CREAR                                            4) HACER EL PRIMER COMMIT.
         Checkout] y [TortoiseSVN] (Figura 3).                    EL REPOSITORIO                                      Ahora subiremos el archivo creado en el punto
         Como ven, TortoiseSVN no tiene una venta-                Creamos una nueva carpeta en alguna par-            anterior. Si prestamos atención, el icono de la
         na de aplicación propiamente dicha, funcio-              te de nuestra PC. Hacemos clic derecho so-          carpeta con nuestra copia privada ahora tiene
         na solamente como un agregado al menú                    bre ella y buscamos la opción [Create re-           un icono de una tilde. Esto quiere decir que hay
         contextual de Windows, lo cual le otorga                 pository here], que se encuentra dentro del         cambios en esa carpeta, listos para ser sincro-
         una gran flexibilidad.                                   ítem [TortoiseSVN]. La herramienta nos              nizados en el repositorio. Hacemos clic derecho
         Del menú contextual elegimos la opción                   mostrará una ventana donde tendremos que            en la carpeta y seleccionamos [SVN Commit].
         [SVN Checkout], y TortoiseSVN nos mos-                   elegir el tipo de repositorio. Elegimos             TortoiseSVN mostrará una ventana con infor-
         trará una ventana para ingresar datos del                [Native filesystem] (sistema de archivos            mación que tendremos que completar sobre la
         servidor SVN (Figura 4). Escribimos                      nativo) y continuamos. TortoiseSVN creará           versión que estamos subiendo. En la mitad in-
         http://svn.automattic.com/wordpress/ trunk en el campo   la estructura de carpetas necesaria para el         ferior de esta ventana veremos los archivos que
         [URL of repository] y hacemos clic en [OK]               funcionamiento de Subversion.                       fueron modificados (en este caso, el archivo de
         para empezar el ejecutar el comando. Tortoi-                                                                 texto) y sus propiedades. Seleccionamos el ar-
         seSVN copiará la última versión del repositorio          2) HACER EL PRIMER                                  chivo y continuamos. TortoiseSVN aplicará los
                                                                  CHECKOUT
         de WordPress a esa carpeta. En este paso tam-                                                                cambios en el repositorio para completar la fla-
         bién es interesante la opción [Show log], que            Ahora debemos crear una carpeta para tra-           mante versión 1 del proyecto (Figura 5).
         despliega un historial con las versiones ante-           bajar en nuestra copia privada y hacer el pri-      De aquí en más, el proceso de trabajo será si-
         riores a la actual y sus comentarios.                    mer checkout.                                       milar: hacer un checkout de la última versión en
                                                                                                                      el repositorio, realizar cambios en nuestra co-
                                                                                                                      pia privada, luego hacer un update y, por últi-
                                                                                                                      mo, un commit. En la práctica, y con grupos de
                                                                                                                      trabajo, el proceso no es tan sencillo, ya que si
                                                                                                                      hay inconsistencias entre los archivos, tendre-
                                                                                                                      mos que combinarlos (lo que en la jerga se co-
                                                                                                                      noce como merge), lo cual a veces puede re-
                                                                                                                      sultar en más de un dolor de cabeza. Pero, claro,
                                                                                                                      todo esto se aprende durante la marcha.

                                                                                                                      CONCLUSIÓN
                                                                                                                      Subversion puede parecer difícil, pero una vez
                                                                                                                      que se le pierde el miedo, es una herramien-
                                                                                          Figura 5.                   ta sumamente útil. Aunque tal vez SVN sea
                                                                                          Aquí estamos                más conocido en el ámbito del desarrollo de
                                                                                          haciendo                    software a gran escala, ya es hora de que, co-
                                                                                          commit de                   mo desarrolladores web, tengamos a mano
                                                                                          un archivo en               una herramienta de control de versiones, aun
                                                                                          el software                 cuando trabajemos solos.
                                                                                          gratuito y                  Esperamos que se hayan entusiasmado con
                                                                                          open source                 Subversion, y como siempre, el foro de USERS
                                                                                          TortoiseSVN.                está abierto para cualquier consulta. ▲

             96                                                                                                                                           redusers.com

More Related Content

What's hot

11 Joomla. Mantenimiento Del Espacio Web
11 Joomla. Mantenimiento Del Espacio Web11 Joomla. Mantenimiento Del Espacio Web
11 Joomla. Mantenimiento Del Espacio Web
José M. Padilla
 
Maquinas virtuales
Maquinas virtualesMaquinas virtuales
Maquinas virtuales
25896
 
Control de versiones con Subversion
Control de versiones con SubversionControl de versiones con Subversion
Control de versiones con Subversion
nqnwebs
 

What's hot (20)

Servidores web linux
Servidores web linuxServidores web linux
Servidores web linux
 
Servidor web para linux
Servidor web para linuxServidor web para linux
Servidor web para linux
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
 
2 Aplicaciones prácticas de software libre
2 Aplicaciones prácticas de software libre2 Aplicaciones prácticas de software libre
2 Aplicaciones prácticas de software libre
 
MAQUINAS VIRTUALES
MAQUINAS VIRTUALESMAQUINAS VIRTUALES
MAQUINAS VIRTUALES
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
11 Joomla. Mantenimiento Del Espacio Web
11 Joomla. Mantenimiento Del Espacio Web11 Joomla. Mantenimiento Del Espacio Web
11 Joomla. Mantenimiento Del Espacio Web
 
Maquinas virtuales
Maquinas virtualesMaquinas virtuales
Maquinas virtuales
 
EcoSistema DevOps DevSecOps un pequeño brief
EcoSistema DevOps DevSecOps un pequeño briefEcoSistema DevOps DevSecOps un pequeño brief
EcoSistema DevOps DevSecOps un pequeño brief
 
Practica 7 servidor samba
Practica  7 servidor sambaPractica  7 servidor samba
Practica 7 servidor samba
 
Usando docker
Usando dockerUsando docker
Usando docker
 
todo sobre linux
todo sobre linuxtodo sobre linux
todo sobre linux
 
20010315 WAP Lite Gateway
20010315   WAP Lite Gateway20010315   WAP Lite Gateway
20010315 WAP Lite Gateway
 
Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
 
Mercurial
MercurialMercurial
Mercurial
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
 
Zimbra
ZimbraZimbra
Zimbra
 
Control de versiones con Subversion
Control de versiones con SubversionControl de versiones con Subversion
Control de versiones con Subversion
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 

Similar to Control de versiones utilizando subversion

Cvs EspañOl
Cvs EspañOlCvs EspañOl
Cvs EspañOl
rigol03
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
Eudris Cabrera
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
rossykeles
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
rossykeles
 

Similar to Control de versiones utilizando subversion (20)

Subversion
SubversionSubversion
Subversion
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
 
Desarrollo Subversivo
Desarrollo SubversivoDesarrollo Subversivo
Desarrollo Subversivo
 
Control de versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
 
Instalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónInstalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuración
 
Clientes ligeros y servidores nx
Clientes ligeros y servidores nxClientes ligeros y servidores nx
Clientes ligeros y servidores nx
 
Servidor web
Servidor webServidor web
Servidor web
 
Servidorweb
ServidorwebServidorweb
Servidorweb
 
Taller sistemas distribuidos sobre Windows usando VMWare
Taller sistemas distribuidos sobre Windows usando VMWareTaller sistemas distribuidos sobre Windows usando VMWare
Taller sistemas distribuidos sobre Windows usando VMWare
 
Presentacion Subversion
Presentacion SubversionPresentacion Subversion
Presentacion Subversion
 
Presentación SUbversion
Presentación SUbversionPresentación SUbversion
Presentación SUbversion
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Servidorweb
ServidorwebServidorweb
Servidorweb
 
Servidor Web Alojamiento
Servidor Web Alojamiento
Servidor Web Alojamiento
Servidor Web Alojamiento
 
Megías.pdf
Megías.pdfMegías.pdf
Megías.pdf
 
Cvs EspañOl
Cvs EspañOlCvs EspañOl
Cvs EspañOl
 
Subversion
SubversionSubversion
Subversion
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
 

More from Julio Pari

Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Julio Pari
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
Julio Pari
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
Julio Pari
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
Julio Pari
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hija
Julio Pari
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
Julio Pari
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
Julio Pari
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
Julio Pari
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
Julio Pari
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
Julio Pari
 

More from Julio Pari (20)

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPC
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic Enterprise
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor Osorio
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
 
UML Java
UML JavaUML Java
UML Java
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hija
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 

Control de versiones utilizando subversion

  • 1. 094-097-DiseæoWeb-usr206.qxp 16/05/2008 02:27 p.m. PÆgina 94 WEBMASTERS RODRIGO GALÍNDEZ COORDINANDO VERSIONES DE CÓDIGO FÁCILMENTE rodrigogalindez@gmail.com CONTROL DE VERSIONES DISEÑADOR WEB, APASIONADO- USANDO SUBVERSION POR TODO LO QUE VAYA DESPUÉS DE HTTP:// EN UN AMBIENTE DE TRABAJO UNIPERSONAL, ES SENCILLO CONTROLAR EL VERSIONADO DE UN DOCUMENTO XHTML. PERO ¿QUÉ PASA CUANDO TRABAJAMOS EN EQUIPO? LES PRESENTAMOS SUBVERSION, UNA HERRA- MIENTA PARA FACILITAR LA COORDINACIÓN ENTRE GRUPOS DE TRABAJO. ▼ Seguramente, en algún momento de código fuente, páginas o documentación. El Como pueden observar, su uso en equipos de nuestra carrera profesional nos hemos pre- artículo estará enfocado en un caso inicial, trabajo está perfectamente justificado. De guntado lo siguiente: “¿Quién tiene la última pero práctico, de utilización del software, y cualquier manera, Subversion también es útil versión de este archivo XHTML?”, “¿cuáles dejaremos los detalles puntiagudos a la cu- como una herramienta de backup incremen- son los últimos cambios que se hicieron en riosidad del lector. tal unipersonal. Imaginemos SVN como un las hojas de estilo?”, “¿cómo puedo evitar so- sistema de históricos con capturas en el có- brescribir el código fuente de mi compañe- PRESENTANDO SUBVERSION digo fuente automáticas. Cada vez que en- ro?”. Si no tenemos un sistema confiable pa- Como dijimos anteriormente, Subversion viemos un archivo modificado al repositorio, ra mantener y coordinar versiones de código, (SVN) es un sistema de control de versiones: éste creará una copia de la versión anterior. responder a estas preguntas es casi imposi- maneja los archivos y las carpetas de Ninguna de las copias anteriores se perderá, por ble, y trabajar a ciegas puede ser el único ca- un proyecto y sus modificaciones en el lo que siempre podremos volver a una versión mino posible. transcurso del tiempo. Fue creado en el anterior de nuestros archivos si es necesario. En esta edición hablaremos de Subversion, año 2000 en CollabNet Inc, con el objetivo Es más, si estamos trabajando con un servi- tal vez el sistema más utilizado para contro- de ser una alternativa real y mejorada a CVS dor de Subversion ubicado en algún lugar de lar versiones de documentos, ya sean éstas (Concurrent Versions System, un sistema de Internet, digamos, un servidor alojado en los control de versiones que era la solución de Estados Unidos, tenemos una buena posibi- facto en la época). Al igual que otros pro- lidad de no perder los archivos originales por Subversion en la Web yectos exitosos de renombre, SVN es libre y un desperfecto en nuestras computadoras. Tenemos la suerte de que, últimamente, Open Source, ya que está distribuido bajo la Como introducción, en este informe sola- vienen apareciendo servicios interesantes licencia Apache. mente nos conectaremos a un repositorio basados en la Web para probar Subversion. Subversion trabaja replicando el mode- creado en nuestra propia máquina, pero en Algunos ofrecen cuentas gratuitas, limita- lo cliente/servidor: uno o más clientes se el recuadro Subversion en la Web pueden en- das en su funcionalidad, claro, y otros están conectan a un servidor central que tiene la contrar servidores alojados de Subversion destinados a un uso fuerte del sistema. última copia del proyecto, como también co- listos para probar. Los siguientes son los más interesantes: pias de sus versiones anteriores, dentro de lo que llamaremos un repositorio. El clien- LO BÁSICO: CHECKOUT, Beanstalk (www.beanstalkapp.com) te pide la última versión disponible del pro- UPDATE Y COMMIT Servicio nuevo y con buena interfaz, real- yecto para poder trabajar. Los clientes hacen Los tres comandos que usaremos con más mente muy fácil de usar. Es gratuito con cambios y, por último, sincronizan sus copias frecuencia al trabajar con Subversion son hasta 20 MB de almacenamiento. Se desta- con el repositorio. svn checkout, svn update y svn commit. ca su excelente soporte. Es ideal para los que recién comienzan con Subversion. Roundhaus (www.roundhaus.com) Aunque la cuenta gratuita tiene sus limita- ciones, se destaca por ser uno de los pocos que ofrecen un servicio de integración con- tinua, lo cual lo convierte en algo más que un simple repositorio en la Web. Figura 1. La representación gráfica Google Code (http://code.google.com) en la que podemos ver Dentro del amplio abanico de servicios gra- un repositorio con tres tuitos de Google, se destaca Google Code, clientes conectados. que ofrece hosting gratuito ilimitado con ac- Subversion ordena ceso, claro, a Subversion. y facilita el trabajo. 94 redusers.com
  • 2. 094-097-DiseæoWeb-usr206.qxp 16/05/2008 02:27 p.m. PÆgina 95 FOROS www.redusers.com/foros/webmasters Veamos en qué consisten: 1) SVN CHECKOUT Descarga una copia privada de la última ver- sión del proyecto, es decir, una working copy, a nuestra máquina. Es lo primero que tene- mos que hacer al iniciar una sesión de tra- bajo con SVN. 2) SVN UPDATE Como su nombre indica, se usa para actuali- zar nuestra working copy con los últimos cambios hechos por nuestros compañeros. Este comando debe ejecutarse a menudo para tener siempre una copia fresca del proyecto. 3) SVN COMMIT Envía al repositorio los cambios que hicimos en nuestra copia privada. De más está decir que es una buena práctica, en cada commit, comentar los cambios que hicimos en la versión que es- tamos enviando. De esta manera, nuestros com- pañeros de equipo tendrán una buena ayuda so- bre qué es lo nuevo en la última versión que están descargando (los comentarios se pueden agregar usando el mismo comando commit o, como veremos más adelante, completando un Figura 2. svnX, el cliente más popular en Mac, conectado a un repositorio. campo en una ventana). Fíjense en todas las versiones del proyecto (columna Rev #) y sus No se preocupen: todos estos comandos tie- comentarios (columna Log Message). nen sus semejantes en la herramienta visual que usaremos en este artículo, TortoiseSVN, por lo que haciendo un par de clics evitare- nosotros nos interesará por el momento son mos tipearlos en una ventana de terminal. sus versiones nocturnas, públicamente dis- Sin embargo, lo importante en este punto es ponibles mediante SVN. que entiendan el proceso de trabajar con Primero, debemos bajar TortoiseSVN (gratui- Subversion, que en su concepción más to, Open Source) de http://tortoisesvn.net/ simple consiste en tres pasos: 1. checkout, downloads. TortoiseSVN viene en un archivo 2. update y 3. commit. Con el tiempo apren- instalable .msi, y en versiones de 32 y 64 bits. deremos más comandos útiles para trabajar En este paso también podemos bajar el pa- con el sistema, como svn diff, que permite quete del idioma español. Nota: los usuarios buscar diferencias entre los archivos que es- de Mac tenemos en svnX el cliente perfecto tamos subiendo. para usa r Subversión, que se puede des- cargar de http://rubyurl.com/RGbz. Todos los co- CONECTANDO mandos de TortoiseSVN tienen sus equiva- AL REPOSITORIO lentes en svnX, por lo que a los lectores DE WORDPRESS “maqueros” les será sencillo adaptar las ins- Vamos a ver un ejemplo rápido para familia- trucciones de este artículo. Ahora, una vez rizarnos con la herramienta: nos conectare- descargada e instalada la herramienta en la mos al repositorio (de sólo lectura) de Word- PC, nos conectarnos al servidor SVN de Word- Press. Como muchos saben, WordPress es el Press. Para esto, crearemos una nueva car- CMS para weblogs más utilizado en la ac- peta en alguna parte de nuestra PC que fun- Figura 3. Un menu contextual de tualidad. Aunque se puede descargar direc- cionará como working copy, o copia privada Windows con ítems agregados por tamente desde www.wordpress.org, lo que a del proyecto en que se trabaja. TortoiseSVN. redusers.com 95
  • 3. 094-097-DiseæoWeb-usr206.qxp 16/05/2008 02:27 p.m. PÆgina 96 WEBMASTERS COORDINANDO VERSIONES DE CÓDIGO FÁCILMENTE Eso es todo, ya podemos disfrutar de la úl- Para esto, seguimos los mismos pasos que tima versión de WordPress en una carpeta en el ejemplo anterior (conectando a Word- de nuestra PC. Veamos ahora cómo crear un Press), pero esta vez, en vez de apuntar al repositorio y escribir en él. repositorio de WordPress, apuntamos a la carpeta de nuestro repositorio creada en el CREANDO punto anterior. TortoiseSVN descargará la UN REPOSITORIO versión 0 del repositorio, es decir, no des- Una de las ventajas de TortoiseSVN es que fa- cargará ningún archivo. Figura 4. La ventana cilita la creación de repositorios locales. Lite- para hacer checkout. ralmente, con un clic derecho en una carpeta 3) HACER ALGÚN CAMBIO determinada se puede crear un repositorio en Ahora bien, crearemos un archivo nuevo de tex- Hacemos clic derecho en esa carpeta y segundos. Veamos un ejemplo completo. Los to en la misma carpeta del punto anterior. Este Windows, además de las opciones habitua- pasos que debemos hacer son los siguientes: archivo será luego nuestro primer commit. les de un menú contextual, nos mostrará dos opciones propias de la herramienta: [SVN 1) CREAR 4) HACER EL PRIMER COMMIT. Checkout] y [TortoiseSVN] (Figura 3). EL REPOSITORIO Ahora subiremos el archivo creado en el punto Como ven, TortoiseSVN no tiene una venta- Creamos una nueva carpeta en alguna par- anterior. Si prestamos atención, el icono de la na de aplicación propiamente dicha, funcio- te de nuestra PC. Hacemos clic derecho so- carpeta con nuestra copia privada ahora tiene na solamente como un agregado al menú bre ella y buscamos la opción [Create re- un icono de una tilde. Esto quiere decir que hay contextual de Windows, lo cual le otorga pository here], que se encuentra dentro del cambios en esa carpeta, listos para ser sincro- una gran flexibilidad. ítem [TortoiseSVN]. La herramienta nos nizados en el repositorio. Hacemos clic derecho Del menú contextual elegimos la opción mostrará una ventana donde tendremos que en la carpeta y seleccionamos [SVN Commit]. [SVN Checkout], y TortoiseSVN nos mos- elegir el tipo de repositorio. Elegimos TortoiseSVN mostrará una ventana con infor- trará una ventana para ingresar datos del [Native filesystem] (sistema de archivos mación que tendremos que completar sobre la servidor SVN (Figura 4). Escribimos nativo) y continuamos. TortoiseSVN creará versión que estamos subiendo. En la mitad in- http://svn.automattic.com/wordpress/ trunk en el campo la estructura de carpetas necesaria para el ferior de esta ventana veremos los archivos que [URL of repository] y hacemos clic en [OK] funcionamiento de Subversion. fueron modificados (en este caso, el archivo de para empezar el ejecutar el comando. Tortoi- texto) y sus propiedades. Seleccionamos el ar- seSVN copiará la última versión del repositorio 2) HACER EL PRIMER chivo y continuamos. TortoiseSVN aplicará los CHECKOUT de WordPress a esa carpeta. En este paso tam- cambios en el repositorio para completar la fla- bién es interesante la opción [Show log], que Ahora debemos crear una carpeta para tra- mante versión 1 del proyecto (Figura 5). despliega un historial con las versiones ante- bajar en nuestra copia privada y hacer el pri- De aquí en más, el proceso de trabajo será si- riores a la actual y sus comentarios. mer checkout. milar: hacer un checkout de la última versión en el repositorio, realizar cambios en nuestra co- pia privada, luego hacer un update y, por últi- mo, un commit. En la práctica, y con grupos de trabajo, el proceso no es tan sencillo, ya que si hay inconsistencias entre los archivos, tendre- mos que combinarlos (lo que en la jerga se co- noce como merge), lo cual a veces puede re- sultar en más de un dolor de cabeza. Pero, claro, todo esto se aprende durante la marcha. CONCLUSIÓN Subversion puede parecer difícil, pero una vez que se le pierde el miedo, es una herramien- Figura 5. ta sumamente útil. Aunque tal vez SVN sea Aquí estamos más conocido en el ámbito del desarrollo de haciendo software a gran escala, ya es hora de que, co- commit de mo desarrolladores web, tengamos a mano un archivo en una herramienta de control de versiones, aun el software cuando trabajemos solos. gratuito y Esperamos que se hayan entusiasmado con open source Subversion, y como siempre, el foro de USERS TortoiseSVN. está abierto para cualquier consulta. ▲ 96 redusers.com