Buenas prácticas para usar git junto con svn

La subversión fue popular hace varios años, ahora git se está volviendo popular y cada vez más personas quieren replace a Subversion con git.

El problema es que muchos proyectos se basaron en Subversion. Entonces la pregunta es cómo usar git junto con Subversion. No reemplace svn por completo, y use git.

La forma más simple que puedo averiguar es crear git basado en el código de sucursal de Subversion que ya ha desprotegido. Luego usa git para controlar localmente. Después de las modificaciones, envíe al server git local, luego revise el server remoto con Subversion. Subversion es como contenedor para contener git.

Por cierto, estoy codificando con xcode 3.x, bash xcode 4 antes, pero decepcionado. (Xcode 4 ha salido ahora, pero aún no se ha vuelto a intentar)

Cómo crees que ? O alguna mejor elección?

Gracias

Subversion es como contenedor para contener git

Asegúrese de leer la sección de CAVEATS que viene con git-svn :

CAVEATS

En aras de la simplicidad y la interoperación con un sistema less capaz (SVN), se recomienda que todos los usuarios de git svn dcommit , dcommit y dcommit directamente desde el server SVN, y eviten todas las operaciones de git clone / pull / merge / push entre git repositorys y sucursales.
El método recomendado para intercambiar código entre git branches y users es git format-patch y git am , o simplemente'comprometing' al repository SVN.

No se recomienda ejecutar git merge o git pull en una sucursal de la que planea dcommit .
Subversion no representa fusiones de ninguna manera razonable o útil; para que los usuarios que usan Subversion no puedan ver las fusiones que hayas realizado. Además, si se fusiona o tira de una twig git que es un espejo de una twig SVN, dcommit puede comprometerse con la twig incorrecta.

Por lo tanto, puede adoptar cualquier flujo de trabajo de fusión y publicación con Git, siempre que deje las twigs de SVN que duplica por sí solo (en términos de fusiones o rebases).

He creado una colección de how-to's y screencasts sobre cómo usar git-svn aquí:

http://www.tfnico.com/presentations/git-and-subversion

Entre ellos encontrarás una configuration de espejo git-svn. Es un poco difícil de entender y configurar, pero ha estado funcionando para mí durante casi un año, con un repository SVN bastante grande.

Actualización : una práctica fácil y valiosa es inicializar siempre los clones de git-svn con la opción --prefix . He explicado por qué aquí .