Jun 17
GNU/Linux
Emplear dos sistemas de control de versiones parece algo fuera de lugar a la hora de llevar un proyecto. Sin embargo muchas pueden ser las causas en las que emplear subversion y git puede ser muy provechoso. Por ejemplo en el caso de estos dos escenarios el empleo de ambos sistemas de versionado esta justificado:

- Repositorio central con subversion y posibilidad de trabajar offline con git en máquina local. Cuando el desarrollador vuelva a estar online puede comitear los cambios al repositorio central de subversion. Con tu copia de trabajo puedes trabajar offline puedes decir. Si pero no tienes ninguna de las capacidades de un control de versiones disponible.

- Repositorio central con subversion donde no se desea aumentar el número de ramas. Los desarrolladores pueden hacerse con el código en git y hacer ramas y otros repositorios clonados mientras dure el desarrollo de una característica específica luego se reúne el código y se comitea a subversión.

Veamos como puedes mezclar lo mejor de los dos mundos.

Para poder empezar debemos tener instalado subversion git y git-svn. En distros tipos debian/ubuntu podemos ejecutar:

$ sudo apt-get install subversion git git-svn

Para conocer un poco de subversion sigue la serie de artículos sobre subversion.

Para conocer un poco de git visita este tutorial introductorio sobre git

Ok pues partimos de que tenemos la rama principal de desarrollo (trunk) con un repositorio central subversion en esta url


http://svn.midominio.com/miproyecto/trunk


creamos un directorio para nuestra copia de trabajo y entramos en ella

$ mkdir working-copy
$ cd working-copy

A continuación para inicializar el repositorio git ejecutamos:

$ git-svn init http://svn.midominio.com/miproyecto/trunk

Para traernos el código de la revisión HEAD:

$ git-svn fetch -rHEAD

Trabajamos con normalidad con git y comiteamos los cambios primero en este repositorio:

$ git commit -m "Cambios en git"

Si queremos actualizar el repositorio gitr respecto a posibles cambios en el repositorio central ejecutamos

$ git-svn rebase

Y si queremos comitear a subversion

$ git-svn dcommit

Si encontramos un conflicto debemos resolverlo de la siguiente manera

Tras comitear en git

$ git commit -m "Tal vez encontremos conflictos"

Pedimos actualización (si primero ejecutamos un git-svn dcommit nos dará error 'Transaction is out of date'):

$ git-svn rebase

Esto nos informará de los ficheros con conflictos. Editamos el/los ficheros con conflictos hasta resolverlos. Luego comiteamos en git estos cambios con:

$ git add .

y luego

$ git rebase --continue

para finalmente ejecutar:

$ git-svn dcommit

Que llevará los cambios al repositorio central de subversion.


Publicado por Abraham Covelo

Bookmark Empleando git y subversion  at del.icio.us Digg Empleando git y subversion Mixx Empleando git y subversion Bloglines Empleando git y subversion Technorati Empleando git y subversion Fark this: Empleando git y subversion Bookmark Empleando git y subversion  at YahooMyWeb Bookmark Empleando git y subversion  at Furl.net Bookmark Empleando git y subversion  at reddit.com Bookmark Empleando git y subversion  at blinklist.com Bookmark Empleando git y subversion  at Spurl.net Bookmark Empleando git y subversion  at NewsVine Bookmark Empleando git y subversion  at Simpy.com Bookmark Empleando git y subversion  at blogmarks Bookmark Empleando git y subversion  with wists Bookmark Empleando git y subversion  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

0 Referencias

  1. No hay referencias

0 Comentarios

Mostrar comentarios como(Plano | Hilos)
  1. No hay comentarios

Añadir comentario


Encerrando entre asteriscos convierte el texto en negrita (*palabra*), el subrayado es hecho así: _palabra_.
Smilies normales como :-) y ;-) son convertidos en imágenes.
Direcciones e-mail no serán mostradas y sólo serán utilizadas para notificaciones a través de esa vía