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-tf
proyecto 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-tfs
fue creado para usuarios de Windows y escrito sobre .NET TFS SDK. El SDK de TFS no se ejecutará en Mono, por lo quegit-tfs
no es adecuado para uso multiplataforma.git-tf
fue 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-tf
se 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-tfs
es que no funcionará en Mac OS. Si hubiera una forma de hacergit-tfs
multiplataforma, esgit-tf
casi seguro que no existiría.git-tfs
es 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-tf
tiene 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 uncheckintool
comando 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-tf
funciona rellenando el repositorio de git directamente, descargando objetos TFS directamente en la base de datos de objetos de git.git-tfs
funciona 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-tfs
puede 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-tfs
es desarrollado activamente por una comunidad.git-tf
no ha tenido la adopción comunitaria.No quiero que parezca que estoy diciendo que
git-tf
es malo. No es. Creo que en realidad es bastante bueno. Pero puede que no sea su mejor opción.Actualización:
git-tf
ha llegado al final de su vida útil . Microsoft ya no lo mantiene ni lo admite. Recomendamosgit-tfs
si 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
branch
comando). 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-TF
ha sido descontinuado oficialmente después de no haber sido actualizado después de 2013 y ahora se sugiere explícitamenteGit-TFS
como 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-TFS
parece mantenerse activamente: https://github.com/git-tfs/git-tfs/commits/masterfuente