Recientemente, me he estado hartando mucho de TFS. Sin embargo, escuché que hay una luz al final del túnel. Aparentemente, puedo usar git-tf o git-tfs y tratar mi código como si fuera administrado por git, pero poder empujar / tirar hacia / desde un servidor TFS central.
Mi pregunta principal es que no estoy seguro de cuál de estos debería usar. Existe git-tf que es oficialmente compatible con Microsoft, y hay git-tfs que existe desde hace mucho más tiempo. ¿Cuáles son las diferencias entre estos y cuál debería probar primero?

Respuestas:
Descargo de responsabilidad: comencé el
git-tfproyecto y, aunque el proyecto ahora está en manos muy capaces sin mí como colaborador frecuente, debe considerar absolutamente que mis opiniones sobre esto están fuertemente sesgadas. (Y, asumiendo que estás en Windows, quizás inesperado).Hay dos diferencias fundamentales entre las dos herramientas:
git-tfsfue creado para usuarios de Windows y escrito sobre .NET TFS SDK. El SDK de TFS no se ejecutará en Mono, por lo quegit-tfsno es adecuado para uso multiplataforma.git-tffue creado para usuarios multiplataforma y escrito sobre Java TFS SDK. Por lo tanto, se ejecutará en cualquier lugar que sea compatible con Java TFS SDK (Windows, Mac, Linux, AIX, HP-UX, Solaris, etc.) quegit-tfse creó explícitamente para permitir que los usuarios de Xcode accedan a TFS.En Windows, por supuesto, puede usar cualquiera. No voy a decir necesariamente que uno sea mejor que el otro. Pero diré:
Mi mayor queja
git-tfses que no funcionará en Mac OS. Si hubiera una forma de hacergit-tfsmultiplataforma, esgit-tfcasi seguro que no existiría.git-tfses más rápido en algunos casos quegit-tf. El rendimiento no fue nuestra prioridad en las primeras revisiones, la corrección sí lo fue.Debido a que
git-tftiene una amplia matriz de soporte de plataforma, esto significa que su funcionalidad está necesariamente restringida. Por ejemplo, no hay IU.git-tfs, por otro lado, tiene uncheckintoolcomando que abrirá el diálogo de registro de TFS normal. Esto puede ser excepcionalmente útil para visualizar sus cambios. (Si mal no recuerdo, puede abrir una diferencia visual adecuada desde allí, etc.)git-tffunciona rellenando el repositorio de git directamente, descargando objetos TFS directamente en la base de datos de objetos de git.git-tfsfunciona creando una asignación de carpeta de trabajo TFS en una carpeta oculta, luego completando el repositorio de git a partir de eso. Aquí hay una penalización de disco, por lo que si tiene repositorios gigantescos, es posible que sienta esto.git-tfspuede intentar mapear sus ramas de TFS a sus ramas de git. Mucha gente verá esto como algo positivogit-tfs, aunque yo no: el modelo de ramificación de git (a nivel del repositorio) y el modelo de ramificación de TFS (representado como carpetas en el repositorio) son tan radicalmente diferentes que causan problemas en todo menos los flujos de trabajo más simplistas. Pero tu kilometraje puede variar.git-tfses desarrollado activamente por una comunidad.git-tfno ha tenido la adopción comunitaria.No quiero que parezca que estoy diciendo que
git-tfes malo. No es. Creo que en realidad es bastante bueno. Pero puede que no sea su mejor opción.Actualización:
git-tfha llegado al final de su vida útil . Microsoft ya no lo mantiene ni lo admite. Recomendamosgit-tfssi desea una solución bidireccional TFS <-> git.fuente
Descargo de responsabilidad: soy un desarrollador del proyecto git-tfs
Editar: git-tf ya no se mantiene ...
Editar: git-tfs no se mantiene activamente .
Hay un soporte para la ramificación TFS en git-tfs (buscar ramas existentes, crear ramas, fusionar ramas más fácilmente que con TFS, ... usando
branchcomando). Funciona la mayor parte del tiempo, pero no con el flujo de trabajo de ramas TFVC complejas ...Ver:
git-tfs también es quizás la única herramienta que le permite migrar de TFS (VC) a TFS (Git), administrar elementos de trabajo si es necesario, o un repositorio simple de git.
Y algunas otras buenas características ...
(Y es más activo y más apoyado )fuente
Para cualquiera que encuentre este hilo:
Git-TFha sido descontinuado oficialmente después de no haber sido actualizado después de 2013 y ahora se sugiere explícitamenteGit-TFScomo alternativa.(Sección agregada a la página del codeplex del proyecto en abril de 2017 por Edward Thomson, su iniciador y autor de la respuesta aceptada)
Git-TFSparece mantenerse activamente: https://github.com/git-tfs/git-tfs/commits/masterfuente