2009-11-06 19 views
17

El uso de Git en casa me ha echado a perder: ahora encuentro que usar TFS en el trabajo es un poco molesto y quiero explorar la posibilidad de usar Git localmente y sincronizar de alguna manera con TFS. Me imagino que hay algunas maneras diferentes de hacerlo y me gustaría saber de personas que lo han intentado.Uso de Git en una tienda TFS

He encontrado un blog post que describe un flujo de trabajo relativamente manual, pero estoy esperando algo con una mejor automatización y soporte de historial.

Jim Deville parece estar escribiendo series sobre cómo el equipo de IronRuby mantiene su repositorio github sincronizado con TFS pero aún no está completo y debo admitir que tuve un pequeño problema para seguir lo que Jim ha escrito hasta ahora.

Intenté brevemente utilizar una combinación de SvnBridge y git-svn pero me quedé atrapado en un error con bastante rapidez (¿quizás this uno?). Tengo la intención de explorar esto más ...

Actualización: Parece que algunas personas han tenido cierto éxito con el combo SvnBridge git-svn. Ver here.

Finalmente, quizás GitSharp facilitará el desarrollo de una solución útil para este problema? No porque GitSharp tenga algo que ver con TFS per se, sino simplemente porque expone la automatización de git a los desarrolladores de .NET.

pregunta relacionada - Git and Team Foundation Server

+0

Estoy confundido acerca de esta cuestión relacionada edición - ¿cuál es el punto de poner en un enlace autorreferenciados? –

+8

Todavía no estoy seguro, todavía estoy siguiendo los enlaces de preguntas relacionadas ... –

+0

@Paul Batum: ¡No podría estar más relacionado! (Corregido ahora) –

Respuesta

3

Microsoft finalmente ha released su propia solución de puente: Git-TF. Utiliza Java, por lo que funciona en Windows, OSX y Linux.

Editar: A partir de 2013-01-30, Microsoft es announcing aún más integración entre TFS y Git, para abordar precisamente su situación. Estará disponible a través de actualizaciones de las versiones 2012 de TFS y Visual Studio.

+0

No tengo idea de lo buena que es esta herramienta en realidad, pero es un buen descubrimiento. – R0MANARMY

+1

@ R0MANARMY, depende de su repositorio TFS. Al usarlo en un informe de prueba, encontré que estaba bien, pero solo me trajo la punta. Luego descubrí la opción '--deep' y obtuve un clon completo. Luego probé en contra de nuestra producción TFS, ¡17 horas después aún está en el 20%! Creo que la herramienta será útil para que los grandes proyectos salgan de TFS, pero es poco probable que los mismos grandes proyectos puedan usarse de la manera descrita. –

+0

@RayHayes Estoy seguro de que pronto vendrán unas vacaciones patrocinadas por el estado (ish). Un fin de semana largo y una oración para que no haya cortes de energía y debería estar listo para partir. – R0MANARMY

1

Trabajar con un sistema de control de versiones superioresno sólo tendrá un efecto positivo sobre ti; tendrá un efecto positivo en todo tu equipo. Puede que haya resistencia para comenzar, pero a la larga, los beneficios que veas serán vistos por el resto del equipo.

Haga una propuesta simple para convertir su "tienda TFS" a algo nuevo. Va a encontrar tres tipos de personas aparte de usted:

  1. aquellos que están dispuestos a probar su propuesta, porque les da la oportunidad de aprender algo nuevo.
  2. los que ya han probado su propuesta (y me refiero a realmente probado), pero en desacuerdo con usted
  3. los que rechazan su propuesta, ya que no quieren aprender algo nuevo

La primera dos son los tipos de personas que desea mantener cerca, independientemente de si está de acuerdo o no con ellas. El último tipo de persona no solo es una influencia negativa en el equipo como un todo, sino que también es alguien de quien debe distanciarse.

Descargo de responsabilidad: Sé que esto no responde la pregunta directamente, pero creo que es un buen enfoque a seguir cada vez que crea que se justifica un cambio tecnológico.

Aside: Cada vez que se encuentre llamando a su equipo una "tienda TFS", "tienda Java", "tienda Windows", etc., una alarma debería sonar en su cabeza. Esta es una gran bandera roja.Las diferentes tecnologías son buenas para diferentes tipos de tareas y el encasillamiento de un equipo es perjudicial.

+5

Uso el término 'tienda TFS' porque utilizamos TFS para control de fuente, seguimiento de errores y administración de compilación, entre otras cosas. Esto no es una señal de advertencia: estamos hablando de funciones básicas de desarrollo de software donde la estabilidad es vital. Considero que su sugerencia es ingenua, ya que no menciona el análisis del riesgo y el posible retorno de la inversión ofrecido al reemplazar un sistema de control de origen por otro. En este momento, creo que los riesgos superan las recompensas. –

+0

También tengo reservas con respecto a su lado en 'tiendas'. Es un hecho simple que muchas tiendas de desarrollo de software se especializan al dirigirse a una plataforma o industria específica. En general, Java y .NET proporcionan instalaciones muy similares y podría ser peligroso para una tienda de software relativamente pequeña (~ 40 empleados) diluir su conjunto de habilidades al dirigirse a múltiples plataformas de desarrollo. Nunca lo dije en mi publicación original, pero mi empleador ES una tienda .NET, y sostengo que no es perjudicial usar esta terminología. –

+1

Lo siento, parece que mi consejo me ha dado un coraje. Esa no era mi intención. Expresó su deseo de utilizar _better_ tools en su lugar de trabajo (asumido por su uso de la palabra _ "estropeado" _). No hay ingenuidad en la sugerencia porque recomendé ofrecer una propuesta de cambio que, por definición, debería analizar el riesgo y la recompensa. Si una propuesta para cambiar las tecnologías no puede ofrecer una recompensa suficiente a largo plazo para su tienda, ¿cómo puede justificar una solución TFS Git <-> equipada con monos que funcione solo para usted? –

1

trabajé con Jim Deville en la herramienta "TFGit" que los puentes TFS y Git (I comenzaron el proyecto, en realidad). Es altamente automatizado, conserva el autor, la información de la fecha y el historial. La debilidad más importante es que, aunque permite que los desarrolladores de git jueguen con las ramas al contenido de su corazón, solo se puede sincronizar con una rama en el lado de TFS. Sin embargo, es una herramienta bastante fácil de usar y Jim y yo la utilizamos regularmente.

En la actualidad es una herramienta interna para nuestra empresa, y no hemos investigado lo que es público. Si hay un interés sustancial en él, podemos investigar haciendo eso.

+0

Lo vi en la feria de ciencias, de hecho, podría haber hablado contigo Andrew si estuvieras demostrando. Huelga decir que creo que sería bueno si esta herramienta fuera pública, incluso mejor si fuera de código abierto. –

+0

Esto suena como lo que estoy buscando; permitiendo a los desarrolladores crear ramas y sincronizar una rama con TFS. Por favor, considere hacerla pública. – Jimothy