2009-01-05 10 views
7

Durante los últimos 6 meses he estado usando un espejo Git bidireccional de nuestro repositorio principal de Perforce en el trabajo para evaluarlo en nuestro flujo de trabajo. Tengo que decir que me he enamorado de su uso, pero hasta ahora ha tenido un defecto fatal: el soporte de Windows es terrible.¿Cómo puedo proporcionar un espejo bidireccional de un repositorio Git con otro SCM? (bzr, hg, etc.)

Generalmente esto no es un problema para mí, pero ahora mismo lo es. Necesito trabajar en algún trabajo localmente comprometido en mi repositorio de Git y no puedo acceder a él desde la máquina en la que necesito trabajar, ya que hay algunos problemas insolvables con la distribución de Git en esta caja.

De todos modos, lo que quiero hacer si puedo es hacer un segundo espejo: esta vez cerrando mi repositorio de Git pero sirviendo a través de Mercurial o Bazar. He encontrado algunas herramientas que parecen prometedoras y algunas referencias en los comentarios del blog que dicen que la gente ha hecho esto pero nada completo.

Entonces, ¿alguien puede decirme si hay una manera simple de mantener un espejo de 2 vías en un repositorio de Git usando otro DVCS que funcionará en Windows sin ningún problema?

Gracias de antemano por sus problemas ...

Jamie

Respuesta

6

Una nueva opción ha aparecido en la escena de la gente de GitHub: git-hg. Ahora hay una manera de hacer una sincronización bidireccional entre Git y Mercurial.

0

Mercurial tiene probablemente el mejor soporte para Windows (de git & bzr). Incluso tiene una extensión TortoiseHg here.

+0

Mercurial es mi espejo preferido, pero la pregunta es cómo crear un espejo Git/Mercurial bidireccional ... ¡si sabes, por favor hazlo! Txs. – jkp

3

Sé que Mercurial tiene una extensión que te permitirá convertir de git a mercurial. Más sobre https://www.mercurial-scm.org/wiki/ConvertExtension

Aunque yo no lo he usado.

+1

He probado esta última noche: no convierte el historial de Git de manera utilizable, sino que fusiona todas las ramas en la rama predeterminada debido a la manera en que Git trata las ramas internamente. Necesito algo con lo que pueda hacer un espejo bidireccional razonable. – jkp

+0

Puntos que van aquí ya que es la única respuesta que en realidad responde a la pregunta que hice. A otros también les gustaría buscar "Taylor" que también puede ayudar ... – jkp

+0

Convertir es estrictamente unidireccional. No es la herramienta de sincronización que busca. –

3

[wikified ya que esto no es realmente una respuesta]

estoy usando MSYS git sin problemas en Vista. Sin embargo, puedo alojar mis repositorios git en una caja Debian GNU/Linux.

+0

El problema que tengo con Git en Windows tiene que ver con el cuadro de Windows que uso: es una instalación de Windows 2008 de 64 bits que se ejecuta en un host de KVM Linux como máquina virtual. He intentado tanto con Msys Git como con cygwin: • Msys no funciona en Windows 2008 64bit (knownbug) • Cygwin expone errores en KVM. ¡Si pudiera, lo haría! – jkp

+0

Bueno, para cualquier persona interesada, * finalmente * encontré una solución al problema que tuve con msys Git: Ver [aquí para más detalles] [1] [1]: http://code.google.com/p/msysgit/issues/detail? id = 122 & colspec = ID% 20Type% 20Status% 20Priority% 20Component% 20Owner% 20Summary – jkp

+0

¡Guau! Que dolor. ¡Felicidades por encontrar una solución! –

0

Creo que no es probable que encuentre una solución satisfactoria con el git actualmente disponible para otras herramientas de sincronización DVCS. Probablemente podrías improvisar un sistema viable usando git-svn para pasar de get a subversion y hgsubversion para sincronizar entre mercurial y subversion, pero parece una locura kludge solo para evitar el soporte débil de git en windows.

Quizás sea mejor que envíe correos electrónicos diffs desde el recuadro de Windows: git tiene un excelente soporte para el manejo de parches de correo electrónico (al igual que mercurial).

1

También hay tailor que permite la duplicación de entre varios repositorios. Lo tuve trabajando en Cygwin con bastante éxito, hasta que alguien agregó archivos que hicieron que la línea de comando svn choke; aunque ese podría ser un problema bastante raro de golpear.

Cuestiones relacionadas