47 votes

Quelles sont les différences entre Git LFS et git-annex ?

git-annex existe depuis un certain temps, mais n'a jamais vraiment pris de l'ampleur.
Git LFS est plutôt jeune et est déjà pris en charge par GitHub, Bitbucket et GitLab.

Les deux outils traitent les fichiers binaires dans les dépôts git. D'autre part, GitLab semble avoir remplacé git-annex con Git LFS dans un délai d'un an.

  • Quelles sont les différences techniques ?
  • Résolvent-ils le même problème ?

58voto

Pachonk Points 2272

Ils do résoudre le même problème.

Je vais commencer par le pour et le contre, puis je passerai aux différences techniques.

git-annex

Pour :

  • Supporte plusieurs remotes où vous pouvez stocker les binaires.
  • Peut être utilisé sans l'aide du fournisseur d'hébergement (pour plus de détails voir aquí ).

Cons :

  • Support de Windows en version bêta, et ce depuis longtemps
  • Les utilisateurs doivent apprendre des commandes distinctes pour le travail quotidien.
  • non supporté par github et bitbucket

git-lfs

Pour :

  • Supporté par github, bitbucket et gitlab
  • La plupart des systèmes sont compatibles avec tous les systèmes d'exploitation
  • Facile à utiliser.
  • automatisé sur la base de filtres

Cons :

  • Nécessite une implémentation de serveur personnalisée pour fonctionner. Un simple ssh distant n'est pas suffisant. Le serveur de référence est en cours de développement https://github.com/git-lfs/lfs-test-server .

Technique

git-annex

git-annex fonctionne en créant un lien symbolique dans votre dépôt qui est validé. Les données réelles sont stockées dans un backend séparé (S3, rsync, et bien d'autres). Il est écrit en haskell. Comme il utilise des liens symboliques, les utilisateurs de Windows sont obligés d'utiliser l'annexe d'une manière très différente, ce qui rend la courbe d'apprentissage plus élevée.

git-lfs

Les fichiers de pointeurs sont écrits. Une api git-lfs est utilisée pour écrire les BLOBs dans lfs. Pour cette raison, un serveur LFS spécial est nécessaire. Git lfs utilise des filtres afin que vous n'ayez à configurer lfs qu'une seule fois, et à nouveau lorsque vous souhaitez spécifier les types de fichiers que vous voulez pousser vers lfs.

30voto

Karl Forner Points 1565

Un avantage majeur de git annex est que vous pouvez choisir le fichier que vous voulez télécharger.

Vous savez toujours quels fichiers sont disponibles grâce aux liens symboliques.

Supposons par exemple que vous ayez un répertoire rempli de fichiers ISO. Vous pouvez lister les fichiers, puis décider de celui que vous voulez télécharger en tapant : git annex get my_file.

Un autre avantage est que les fichiers ne sont pas dupliqués dans votre caisse. Avec LFS, les fichiers lfs sont présents en tant qu'objets git à la fois dans .git/lfs/objects et dans votre dépôt de travail. Ainsi, si vous avez 20 Go de fichiers LFS, vous avez besoin de 40 Go sur votre disque. Alors qu'avec l'annexe git, les fichiers sont liés par des liens symboliques, donc dans ce cas, seuls 20 Go sont nécessaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X