entre diferencias git tfs tfvc git-tfs git-tf

diferencias entre git y tfs



¿Cuál es la diferencia entre git-tf y git-tfs? (3)

Recientemente me he cansado de TFS. Sin embargo, he oído que hay una luz al final del túnel. Aparentemente puedo usar git-tf o git-tfs y tratar mi código como si hubiera sido administrado por git, pero poder empujar / jalar a / desde un servidor TFS central.

Mi pregunta principal es que no estoy seguro de cuál de estos debería usar. Hay git-tf que oficialmente es compatible con Microsoft, y hay git-tfs que ha existido por mucho más tiempo. ¿Cuáles son las diferencias entre estos y cuáles debo probar primero?


Descargo de responsabilidad: soy un desarrollador en el proyecto git-tfs

Editar: git-tf ya no se mantiene ...

Y ahora, hay un soporte muy bueno de la bifurcación de TFS en git-tfs (buscando ramas existentes, creando ramas, fusionando ramas más fácilmente que con TFS, ... usando el comando de branch ).

Ver:

git-tfs es también quizás la única herramienta que le permite migrar de TFS (VC) a TFS (Git), gestionando los elementos de trabajo si es necesario o el repositorio simple de git.

Y algunas otras buenas características ...

(Y es más active y más supported )


Para cualquiera que encuentre este hilo:

Git-TF se ha suspendido oficialmente después de no haberse actualizado después de 2013 y ahora sugiere explícitamente Git-TFS como alternativa.

Git-TF al final de la vida

Git-TF ha llegado a su fin de vida. No tendrá más actualizaciones y ya no contará con el respaldo de Microsoft.

Microsoft Visual Studio Team Services ahora proporciona una herramienta de importación simple para importar un repositorio de Team Foundation Version Control en un repositorio de Git. Recomendamos que use esto para convertir repositorios de TFVC a Git.

Si necesita más necesidades de conversión avanzada, o si desea conectar un repositorio de TFVC y trabajar con un repositorio local de Git, recomendamos el proyecto git-tfs .

Git-TF no debe usarse para nuevos proyectos, pero permanecerá en el archivo Codeplex para usuarios heredados.

(Sección added a la página codeplex del proyecto en abril de 2017 por Edward Thomson, su iniciador y autor de la respuesta aceptada)

Parece que Git-TFS se mantiene activamente: https://github.com/git-tfs/git-tfs/commits/master


Descargo de responsabilidad: Comencé el proyecto git-tf y, aunque el proyecto ahora está en buenas manos sin que yo sea un colaborador frecuente, debes considerar absolutamente que mis opiniones sobre este tema son muy parciales. (Y, suponiendo que estés en Windows, tal vez sea inesperado).

Hay dos diferencias fundamentales entre las dos herramientas:

  • git-tfs fue creado para usuarios de Windows y escrito sobre .NET TFS SDK. El TFS SDK no se ejecutará en Mono, por lo que esto hace que git-tfs no sea adecuado para el uso multiplataforma.

  • git-tf fue creado para usuarios multiplataforma y escrito sobre Java TFS SDK. Por lo tanto, se ejecutará en cualquier lugar compatible con Java TFS SDK (Windows, Mac, Linux, AIX, HP-UX, Solaris, etc.). git-tf se creó explícitamente para permitir a los usuarios de Xcode acceder a TFS.

En Windows, por supuesto, puede usar cualquiera. No necesariamente voy a decir que uno es mejor que el otro. Pero diré:

  1. Mi mayor queja sobre git-tfs es que no funcionará en Mac OS. Si hubiera una manera de hacer git-tfs multiplataforma, entonces git-tf casi seguro no existiría.

  2. git-tfs es más rápido en algunos casos que git-tf . El rendimiento no era nuestra prioridad en las primeras revisiones, era correcto.

  3. 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 UI. git-tfs , por otro lado, tiene un comando checkintool que abrirá el diálogo normal de TFS Checkin. Esto puede ser de gran ayuda para visualizar sus cambios. (Si no recuerdo mal, puedes abrir una diferencia visual adecuada desde allí, etc.)

  4. git-tf funciona rellenando el repositorio git directamente, descargando objetos TFS directamente en la base de datos de objetos git. git-tfs funciona creando un mapeo de carpeta de trabajo TFS en una carpeta oculta, y luego completando el repositorio git a partir de eso. Aquí hay una penalización de disco, así que si tienes repositorios superinmutables, podrías sentir esto.

  5. git-tfs puede intentar mapear sus ramas de TFS a sus ramas de git. Mucha gente verá esto como algo positivo para git-tfs , aunque yo no: el modelo de ramificación de git (a nivel de 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 en los flujos de trabajo más simplistas. Pero tu kilometraje puede variar.

  6. git-tfs es desarrollado activamente por una comunidad. git-tf no ha tenido la adopción de la comunidad.

No quiero que suene como que estoy diciendo que git-tf es malo. No es. Creo que en realidad es bastante bueno. Pero puede que no sea tu mejor opción.

Actualización: git-tf ha llegado al final de la vida . Microsoft ya no lo mantiene ni lo admite. Recomendamos git-tfs si desea una solución bidireccional TFS <-> git.