miércoles, 20 de abril de 2011

Utilizar Subversiones para estar a la última con nuestros programas


Muchos desarrolladores utilizan SVN (Subversión) o Git.
SVN y Git son un sistema de control de versiones que administra el acceso a un conjunto de ficheros de un proyecto, y mantiene un historial completo de los cambios realizados.  
SVN y Git son una de las mejores forma que hay para que los desarrolladores compartan y modifiquen sus proyectos de forma remota, segura y controlada.

No voy a tratar aquí que ventajas tiene SVN o Git para los desarrolladores. El tema no es éste. La cuestión es cómo podemos beneficiarnos de estas herramientas para estar siempre a la última con muchos de los programas que utilizamos y ayudar a sus desarrolladores a mejorar estos programas.

SVN o Git nos permite estar actualizados hasta tal punto, que segundos después de modificar un desarrollador o colaborador el código de un programa ya podremos tenerlo trabajando en nuestro equipo con unos simples pasos.

Una de las principales ventajas de esto, es que no tendremos que esperarnos al lanzamiento de las versiones definitivas y muchos de los bugs de estas versiones ya estarán corregidos.

Las desventajas es que podremos encontrarnos con otros bug que van saliendo según se va desarrollando la aplicación y que no tienen las versiones estables. Pero por otra parte, podremos ayudar comunicándoselo a sus desarrolladores para que sean corregidos lo antes posible, y como premio nosotros seremos los primeros en comprobar si a sido así.

El proceso para trabajar con Subversión no es nada difícil.
Lo primero es instalar los paquetes necesarios. Para esto debemos instalar los siguientes paquetes: subversion, git.
Esto lo podemos hacer desde el Synaptic o desde un Terminal así:
  • sudo apt-get install subversion git
Luego pasa por saber si el proyecto trabaja y publica este servicio.
Pongo como ejemplo a aplicaciones como:
Paso a mostrar en un vídeo la forma de proceder y usaré para ésto a qBittorrent como ejemplo. qBittorrent trabaja con SVN.


Explico lo visto en el vídeo:
  • Me dirijo a la pagina de qbittorrrent y copio el link del repositorio completo de la SVN:
    svn co https://qbittorrent.svn.sourceforge.net/svnroot/qbittorrent/trunk qbittorrent
  • Abro un Terminal por ejemplo en el escritorio y pego dicho link.
  • Pulso intro y espero a que el paquete sea descargado en el escritorio.
  • Una vez descargado cierro el Terminal y abro la carpeta del paquete descargado.
  • Abro un Terminal en esta ubicación y construyo el programa:
    ./configure
    make
    sudo make install
  • Por último compruebo que la aplicación se ha instalado correctamente.
Nota: Para construir (compilar) la aplicación los métodos son muy parecidos para todas, pero no siempre son iguales.

Por ejemplo para QWBFSmanager sería así:
qmake PREFIX=/usr/local
make
sudo make install

Para FatRat sería:
cmake . -DWITH_BITTORRENT=ON -DWITH_SFTP=ON -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install


El método depende de cada desarrollador.
Para saber como se tiene que hacer, así como la dependencias de dicha compilación, dentro de cada paquete habrá un archivo llamado INSTALL, README o similar donde se detallan los pasos a seguir.

Una vez  terminado el proceso de construcción podemos guardar esta carpeta donde queramos ya que será utilizada para futuras revisiones del programa.
La manera de hacer estar revisiones es muy fácil.
  • Entramos dentro de la carpeta (donde la hayamos guardado)
  • Abrimos un Terminal en dicha ubicación.
  • Ejecutamos el siguiente comando:
    svn up
  • En el caso de utilizar git sería:
    git pull
  • Si no han ávido cambios en la revisión en este caso la SVN, nos muestra el número de reversión correspondiente y listo.
  • En caso contrario se nos descargaran todos los cambios habidos de dicha revisión hechos por sus desarrolladores y también al final nos dará el numero de esta última revisión.
  • Luego por último construiremos otra vez con:
    ./configure
    make
    sudo make install

Vídeo de ejemplo de cómo comprobar e instalar una revisión:
 


Paso a explicar lo visto en el vídeo:
  • Accedo a la carpeta y abro un Terminal
  • Compruebo que no hayan nuevos cambios en el proyecto con el comando:
    svn up
  • No hay cambios en el proyecto y me da el número de la última revisión
  • Para mostrar como funciona, elimino una carpeta del paquete descargado y vuelvo a ejecutar el comando:
    svn up
  • Como se puede comprobar automáticamente baja únicamente los archivos que faltan y que yo he eliminado. Igualmente en el caso de que el desarrollador o cualquier miembro del proyecto hubiese modificado un archivo este también sería descargado.
  • Vuelvo a construir el programa con:
    ./configure && make && sudo make install
Nota: El comando anterior es lo mismo que hacer...
./configure
make
sudo make install 

...pero en una sola línea.

También es recomendable desinstalar la aplicación si la tenemos instalada desde el Centro de Software de Ubuntu, Synaptic o paquetes DEB, antes de instalarla de esta forma.

Sé que lo todo lo expuesto anteriormente parece complicado y se sale de la línea del blog de mostrar las cosas gráfica e intuitivamente. Yo trabajo con subversiones y considero que no está de más mostrar este interesante procedimiento, que por otra parte una vez realizados unas cuantas veces es pan comido.
Tú decides probarlo o no. Tampoco tienes porqué complicarte la vida...pero si quieres ampliar tus conocimientos algo más, tampoco está de más.

6 comentarios:

  1. Gracias me viene de perlas , quería acercarme al código de un programa porque eso supuestamente me enseñan en la universidad digo supuestamente porque sin animos de echar tierra sobre ellos pues no creo que la forma tradicional sirva de algo es mejor acercarse así tal como me muestras , de esa forma pienso yo que se logra aprender más, gracias xd.

    ResponderEliminar
    Respuestas
    1. Bueno, pues nada, espero Reisilver no te entre dolor de cabeza...jeje

      Eliminar
  2. pues ya lo tengo con algunos cursos , estadística por ejemplo xd

    ResponderEliminar
    Respuestas
    1. Pues nada hombre, cuando puedas(y quieras) te curras un tuto...por pedir que no quede ¡no? jeje

      Eliminar
  3. OYE frann ese reloj que aparece en tu escritorio es muy bonito , cómo lo hiciste aparecer allí no es un screemlet o sí , o gagets de google ?¿?¿?¿?

    ResponderEliminar