git github git-lfs git-annex

¿En qué se diferencian Git LFS y git-annex?



github git-lfs (2)

git-annex ha existido durante bastante tiempo, pero nunca realmente ganó impulso.
Git LFS es bastante joven y ya es compatible con GitHub, Bitbucket y GitLab.

Ambas herramientas manejan archivos binarios en los repositorios de git. Por otro lado, GitLab parece haber reemplazado git-annex con Git LFS dentro de un año.

  • ¿Cuáles son las diferencias técnicas?
  • ¿Resuelven el mismo problema?

Ellos resuelven el mismo problema.

Permítanme comenzar con pro / con, luego pasaré a las diferencias técnicas.

git-anexo

Pros:

  • Soporta múltiples controles remotos que puede almacenar los binarios.
  • Se puede usar sin soporte del proveedor de alojamiento (para más detalles, consulte here ).

Contras:

  • Soporte de Windows en beta, y ha sido durante mucho tiempo.
  • Los usuarios necesitan aprender comandos separados para el trabajo diario
  • no soportado por github y bitbucket

git-lfs

Pros:

  • Soportado por github, bitbucket y gitlab
  • Más soportado en todos los sistemas operativos
  • Fácil de usar.
  • automatizado basado en filtros

Contras:

  • Requiere una implementación de servidor personalizada para funcionar. Un simple control remoto ssh no es suficiente. El servidor de referencia está en desarrollo https://github.com/git-lfs/lfs-test-server .

Técnico

git-anexo

git-annex funciona creando un enlace simbólico en tu repositorio que se comprometa. Los datos reales se almacenan en un backend separado (S3, rsync y MUCHOS otros). Está escrito en haskell. Dado que utiliza enlaces simbólicos, los usuarios de Windows se ven obligados a usar el anexo de una manera muy diferente, lo que hace que la curva de aprendizaje sea más alta.

git-lfs

Los archivos de puntero están escritos. Se utiliza una api git-lfs para escribir los BLOB en lfs. Se requiere un servidor LFS especial debido a esto. Git lfs usa filtros, por lo que solo tiene que configurar lfs una vez, y nuevamente cuando desee especificar qué tipos de archivos desea enviar a lfs.


Una de las principales ventajas de git annex es que puede elegir qué archivo desea descargar.

Todavía sabes qué archivos están disponibles gracias a los enlaces simbólicos.

Por ejemplo, suponga que tiene un directorio lleno de archivos ISO. Puede enumerar los archivos y luego decidir cuál desea descargar escribiendo: git annex get my_file.

Otra ventaja es que los archivos no están duplicados en su pago. Con LFS, los archivos lfs están presentes como objetos git tanto en .git / lfs / objects como en su repositorio de trabajo. Entonces, si tiene 20 GB de archivos LFS, necesita 40 GB en su disco. Mientras que con git annex, los archivos tienen un enlace simbólico, por lo que en este caso solo se requieren 20 GB.