Compartir código en diferentes sistemas de control de origen

El producto en el que estoy trabajando tiene una versión para Mac y PC. La versión para PC utiliza Team Foundation Server de Microsoft y Mac utiliza Subversion para el control de código fuente. En este momento tenemos un poco de código compartido entre los dos y actualmente vive en ambos sistemas y inevitablemente se desincronizará.

¿Cuáles serían algunas forms de mantener estos en sincronía automágicamente? Ninguno de los equipos está dispuesto a cambiar los sistemas de control de versiones.

No sé cómo hacerlo exactamente, pero busqué en Google un poco y encontré que:

http://social.msdn.microsoft.com/Forums/en/tfsintegration/thread/c7ab2584-dd8a-43da-af9c-ff1e7f9cec41

Puede probar algún tipo de puente para convertir cada repository de un VCS a otro:

  • tfs2svn
  • svnbridge

Puedes hacerlo pero yo no lo haría.

Puede migrar los datos de un sistema a otro con herramientas como tfs2svn o Timely Migration . En principio, puede continuar manteniendo los dos repositorys sincronizados. Sin embargo, hacer esto es una receta para el desastre, en mi opinión.

Las únicas herramientas de revisión de código fuente que mezclaré son Subversion y Git con git-svn que se usa para sincronizar repositorys locales de git contra un enlace troncal de Subversion central.

EDITAR: aunque sigo pensando que la ruta sincronizada está llena de dolor, parece que podrías hacerlo con Git como intermediario:

Hay un git-tfs muy parecido a git-svn (no tengo experiencia con él)

Aquí hay una publicación de blog que también puede ser útil.

Si ninguno de los dos equipos quiere ser conquistado por el otro, tal vez esta sea una gran oportunidad para mover ambos equipos a Git o Mercurial .

Joel Spolsky , nuestro patrocinador aquí en StackOverflow, tiene un buen tutorial de Mercurial que hace un buen trabajo al vender los beneficios.