Inicialmente implantamos el uso de Subversion en la empresa porque habían varias personas ya familiarizadas con él y era la única opción que nos ofrecía Dreamhost.
Sin embargo el Subversion presenta algunos problemillas e ineficiencias por las cuales yo personalmente uso Git en mi máquina, dado que permite conectar con repositorios subversion sin problemas, manteniendo a nivel local todas las ventajas que me ofrece el Git.
Y aunque vamos a migrar enteramente a Git próximamente, entretanto trabajaremos con él localmente, mientras seguimos usando como repositorio central el Subversion de Dreamhost.
¿Por qué Git?
Instalación de Git
Mac OS X
Desde la sección de descargas de la página, existe un enlace para la versión instalable para Mac (Leopard). Instalar como cualquier aplicación de Mac.
Aunque el git viene por defecto con el gitk y git-gui como herramientas gráficas, en el Mac podemos también descargar el GitX
Linux (Ubuntu)
En Ubuntu, hay que instalar los paquetes git-core, git-svn y para asegurarnos que no hay errores, subversion-perl.
Windows (XP)
Hay varias formas de instalarlo, quizás la más sencilla sea descargar e instalar msysgit..
Una vez descargado, tras el doble click pertinente para ejecutar el instalador y un par de pulsaciones en el botón Next para avanzar, llegamos a la selección de componentes para la instalación. Allí marcar un botón que dice Conext menu entries y luego otra vez Next. Cuando lleguemos a otra pantalla donde se nos dan más opciones a elegir, seleccionar Run Git from the Windows Command Prompt. La siguiente opción se deja como está (Checkout Windows-style, commit Unix-....).
Para usarlo, en el explorador de archivos pulsamos con botón derecho sobre la carpeta en la que queramos volcar nuestros repositorios, y seleccionamos la opción git bash here.
Trabajar con Git contra un repositorio central Subversion
Hablaré de las tres operaciones básicas a realizar, a saber: el checkout inicial del proyecto detro de una carpeta administrada por git, los commit tanto a nuestro repositorio local como al central (en Subversion), y las operaciones de actualización de nuestra copia con los últimos cambios subidos por nuestros compañeros de equipo.
Usaré la interfaz de línea de comandos para realizar dichas operaciones habituales.
Checkout
Si hemos creado el repositorio subversion con la estructura clásica (trunk, branches, tags), basta con hacer:
git svn clone --prefix svn/ -s http://direcciondemirepositorio.com/nombre_de_proyectoEsto crea una carpeta denominada nombre_de_proyecto, en la cual se van a volcar todos los cambios realizados en el repositorio central hasta ese momento, preservando por tanto el historial.
Commit
En Subversion, cuando hacemos commit desde una carpeta y sin especificar ficheros concretos, sube todos los cambios que hayan presentes. La filosofía de Git es distinta: primero decimos que ficheros (o cambios dentro de ficheros) queremos meter en el próximo commit (git add -i para acceder a una herramienta interactiva donde indicar lo que queremos meter), y luego realizamos el commit propiamente dicho.
Ojo que en el Git cuando se hace un commit, se hace en el repositorio local. Cuando queramos subir los commit realizados al repositorio subversion, usaremos git svn dcommit
Update
Para actualizar hay dos maneras de hacerlo, una es bajar los cambios y después fusionarlos, y la segunda es una fusión de ambas y por tanto la más usada:
git svn rebaseConclusiones
Aunque el git tiene sus detractores, y ya he leído varios artículos de gente que se iba a pasar al Mercurial, yo me siento mucho más cómodo con él que con el Subversion.

0 comentarios:
Publicar un comentario en la entrada