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 que git-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.) que git-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 hacer git-tfsmultiplataforma, es git-tfcasi seguro que no existiría.
git-tfses más rápido en algunos casos que git-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 un checkintoolcomando 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 positivo git-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. Recomendamos git-tfssi desea una solución bidireccional TFS <-> git.