1 de marzo de 2011

Crear un branch en Subversion

En este post pondré los pasos a seguir para hacer un branch con Subversión. Para poner en contexto Subversion es un sistema de control de versiones. Un sistema  de control de versiones nos ayuda mucho en el desarrollo de software, ya que podemos trabajar a  través del tiempo sobre un archivo (.java, .php,  .cpp, etc), y al ir guardando nuestros cambios, estos se guardan bajo un id de cambio, llamado revisión. Con esto podemos regresar a un punto específico de nuestro archivo,  en caso de que hayamos hecho cambios al código que no funcionaron. Es muy útil cuando se trabaja en equipo, ya que se pueden mezclar los cambios hechos por varias personas al mismo tiempo  en un mismo documento.  

Pero si les interesa este post, es porque ya saben que es Subversion y para que sirve. Entonces vamos al grano. 

Pero este post trata de cómo hacer un brach. Pero,  que es un branch. Basicamente es una copia de tu archivo, carpeta o proyecto actual, el cual llevara un camino de edición diferente, es decir, que se parte de un archivo original, se hace una copia (una “copia ligera” en el caso de subversion) y se trabaja de manera independiente sobre esas dos vertientes de archivos y/o. Por ejemplo, supongamos que  tenemos un proyecto web sin ningún framework implementado y bajo un control de versiones, el cual queremos implementar con Struts. Este proyecto web ya es estable, pero se le sigue dando mantenimiento sobre detalles que van saliendo con el tiempo y uso de los usuarios.  Por lo cual no se puede detener el desarrollo de ese proyecto para implementar Struts. Entonces aquí entran los branch, para hacer una copia del proyecto original, y que ambas copias del proyecto sigan un rumbo diferente. Despues de tener implementado Struts en el branch, hay que mezclar los proyectos, ya que en el original (trunk) ya se han corregido algunos bugs, y aquí en tra el “merge”, que se encarga de mezclar las diferentes ramas de un proyecto. Entonces empecemos:

En un inicio, para subir un proyecto a un repositorio, Subversion nos recomienda que se haga con la siguente estructura de directorios:

 
Donde “calc” es el nombre de nuestro proyecto, “trunk” es donde ira la rama principal de nuestro proyecto, y branches, donde guardaremos una o varias “copias” de la rama principal del proyecto.

Hacer  un branch del proyecto
Yo ya tengo un proyecto en Subversion que va en la revisión 24. Si tenemos configurado el Subversion para que funcione con Apache, podremos ver nuestros proyectos versionados desde el navegador, poniendo en la barra de direcciones http://localhost/repos/, donde “repos” es el nombre que le dimos a nuestro repositorio en el archivo “conf” de Apache, vemos lo siguiente:  

 
Se muestran mis 2 proyectos en mi repositorio. El proyecto para este tutorial es “MetodosNumericos”.  Y dentro de “MetodosNumericos” tengo la estructura de directorios que se recomienda:
 
En la carpeta trunk es donde tengo alojado la mi proyecto. En esta carpeta se coloca por convención el tronco del proyecto, del cual derivara una rama o branch. Mi proyecto de Netbeans se llama “Metodos Numericos”, el cual es una aplicación de escritorio.

Aquí se ve el contenido de mi proyecto.

Para hacer una copia de este proyecto y ponerlo en el branch, vamos a la consola  y ponemos lo siguiente:



Todo en una línea.
Dónde:
-          svn copy es el comando para hacer un brach, que al final de cuentas es una copia.
-          http://localhost/repos/MetodosNumericos/trunk/ es el directorio de nuestro repositorio del cual queremos hacer un branch.
-          http://localhost/repos/MetodosNumericos/branches/MetodosNumericos-branch es el directorio del repositorio donde queremos colocar nuestro branch
-          -m es un parámetro para indicar un comentario descriptivo de la acción que se realiza,  que es obligatorio cada que se hace algo en Subversion. En este caso “nuevo branch con Subversion”.

Si los parámetros son correctos, veremos el siguiente mensaje:





Ya que para mí repositorio este es mi commit número 25.
Y si navegamos a http://localhost/repos/MetodosNumericos/branches/ confirmaremos que si se creó correctamente nuestro branch.







Despues para empezar a trabajar con ese brach solo hara falta ubicarnos en el directorio donde queremos alojar nuestro proyecto y dar “checkout” con la siguiente sentencia:








Y se descargara el proyecto del control de versiones:
Y al usar el comando dir, nos damos cuenta de que ya hay una carpeta “MetodosNumericos-branch”, con la cual podemos empezar a trabajar, y posteriormente dar commit.


Hay que recordar que al dar commint  de un branch dado, los cambios van a dar a el 
directorio de nuestro repositorio donde tenemos el branch. No a el trunk del proyecto. FIN




19 de enero de 2011

Volver a Compartir

Llevo varias semanas con la idea en mente de volver a escribir de manera mas recurrente. Habia dejado de escribir aqui, ya que sentia que no tenia material digno de estar en este blogspot. Soy de la idea ( tal ves erronea ) de que para escribir primero hay que leer. Y en este tiempo me he dedicado a eso mismo. A leer tanto literatura de la que es alimento para el alma ( cuentos, novelas, poesia, etc. ), como literatura tecnica y que me apasiona.

Vienen meses que demandan mucho de mi en todos los aspectos: tiempo, amor, esfuerzo, dedicacion, disciplina, dinero. Tengo muchos proyectos en mente para este primer semestre de año. Algunos laborales, otros academicos y tambien personales. Con lo cual me tendre que hacer un maestro en la administracion de mi tiempo y demas recursos. Si hay mas de 1 entrada a la semana de este blog, será signo de mi exito al maximizar mi tiempo.

Para ya no hacer esta entrada mas larga, solo queda por decir que es un placer volver a poner contenido en este blogspot.

Por cierto este post lo estoy redactando desde "Nano", un editor de texto ligero, que segun el manual, emula la funcionalidad de un editor de texto
llamado "Pico".

14 de junio de 2010

Solo le pido a Dios - Mercedes Sosa

Hace unos dias lei esto en un periodico:

Solo le pido a Dios

Que el dolor no me sea indiferente,

Que la reseca muerte no me encuentre

Vacio y solo sin haber hecho lo suficiente.

Solo le pido a Dios

Que lo injusto no me sea indiferente,

Que no me abofeteen la otra mejilla

Despues que una garra me araño esta suerte.

Solo le pido a Dios

Que la guerra no me sea indiferente,

Es un monstruo grande y pisa fuerte

Toda la pobre inocencia de la gente.

Solo le pido a Dios

Que el engaño no me sea indiferente

Si un traidor puede mas que unos cuantos,

Que esos cuantos no lo olviden facilmente.

Solo le pido a Dios

Que el futuro no me sea indiferente,

Desahuciado esta el que tiene que marchar

A vivir una cultura diferente.

En estos dias busco material de Mercedes Sosa. Esto me engancho.

8 de junio de 2010

¿Es la nube lo de hoy? ¿Sera lo de mañana?

05 junio 2010 sabado 05:06

Un recuerdo de hace unos dias, fue el de la exposicion de 3 min que hizo cada una de las personas de mi grupo en la U-pizza para la clase de Psicosociologia Industrial. Tenian que ser 3 min delante del grupo, y el tema era el que quisieras. Obviamente yo hable de cosas interesantisimas, ya saben, politica, finanzas, transacciones de millones de dolares, la crisis financiera en Grecia, el sistema educativo de Alemania del siglo XVIII, etc. El mismo dia de mi participacion, hablo Oscar sobre el cloud computing. Oscar, quien es todo un geek (aunque ese dia mas bien parecia vendedor de servicios de nube de una empresa como Sun, impresionante ehh!), decia que es lo que va a prevalecer en el futuro inmediato. En pocas palabras, la nube era la onda. Que todo iba a estar en la nube. Con lo cual difiero un poco.

Para empezar en concepto de nube nos dice que las empresas ya no van a tener que lidiar con hardware, software dentro de su organizacion, reducira el personal de IT, menos mantenimiento a su equipo de computo, y de mas puntos, ya que todas las necesidades computacionales seran contratadas como un servicio a terceros. Es decir, si necesitas almacenamiento, procesamiento de datos, software, vas con un proveedor de nube, implementa la solucion, y tu ni te enteras como se hace, que se implementa, que hardware, que software, que metodologias, que servidores, pero tendras la solucion a tus necesidades.

Me parece que mucha gente esta y estara renuente a darle su informacion critica a un 3ro, ya que no se sabe como y donde almacenara esa informacion, por las manos de quien pasara, cuales son las politicas de seguridad que tienen para esa informacion, etc. Como te aseguras de que la "nube" sabe como manejar la seguridad e integridad de la informacion que es critica para tu organizacion??? Siento todavia a la gente renuente a tener su informacion fuera de su empresa, y en parte tienen razon. Para intentar atenuar esta, si quieren excusa, hay nubes privadas, nubes hibridas y soluciones que te venden el hardware y software necesario pera que implementes la nube en tu propia empresa, pero, se pierde un poco el concepto e idea de lo que es la nube, por lo que comento en el 2do parrafo.

Creo que pasa lo que paso hace algunos años cuando se decia que los servicios web eran el futuro. Eso es lo que las empresas de tecnologia nos vendian, y ya se vio que no fue asi. Y hoy lo que se intenta vender es la nube como la solucion por excelencia. Pero, como toda tecnologia, tiene su nicho, hay cosas para las que va perfecto, otras para las que va mas o menos, y otras para las que no es la opcion, como todo en la vida.