Чем отличаются Git LFS и git-annex?

git-annex существует уже довольно давно, но никогда не набирал обороты.
Git LFS довольно молодая и уже поддерживается GitHub, Bitbucket и GitLab.

Оба инструмента обрабатывают бинарные файлы в репозиториях git. С другой стороны, GitLab, похоже, за один год заменил git- annex на Git LFS.

  • Каковы технические различия?
  • Они решают ту же проблему?

2 ответа

Решение

Они решают ту же проблему.

Позвольте мне начать с pro/con, а затем я перейду к техническим различиям.

ГИТ-приложение

Плюсы:

  • Поддерживает несколько пультов, которые вы можете хранить двоичные файлы.
  • Может использоваться без поддержки со стороны хостинг-провайдера (подробнее см. Здесь).

Минусы:

  • Поддержка Windows в бета-версии, и был в течение длительного времени
  • Пользователи должны изучить отдельные команды для повседневной работы
  • не поддерживается github и bitbucket

ГИТ-LFS

Плюсы:

  • Поддерживается github, bitbucket и gitlab
  • Наиболее поддерживается на всех ОС
  • Легко использовать.
  • автоматизированный на основе фильтров

Минусы:

  • Требуется пользовательская реализация сервера для работы. Простого удаленного ssh недостаточно. Справочный сервер находится в стадии разработки https://github.com/git-lfs/lfs-test-server.

технический

ГИТ-приложение

git-annex работает, создавая символическую ссылку в вашем репо, которая фиксируется. Фактические данные хранятся в отдельном бэкэнде (S3, rsync и многие другие). Это написано на хаскеле. Так как он использует символические ссылки, пользователи Windows вынуждены использовать приложение совсем другим способом, что делает кривую обучения выше.

ГИТ-LFS

Файлы указателя пишутся. API git-lfs используется для записи больших двоичных объектов в lfs. Из-за этого требуется специальный сервер LFS. Git lfs использует фильтры, поэтому вам нужно только настроить lfs один раз и снова, когда вы хотите указать, какие типы файлов вы хотите передать в lfs.

Основным преимуществом git annex является то, что вы можете выбрать, какой файл вы хотите загрузить.

Вы все еще знаете, какие файлы доступны благодаря символическим ссылкам.

Например, предположим, что у вас есть каталог, полный файлов ISO. Вы можете перечислить файлы, а затем решить, какой из них вы хотите загрузить, набрав: git annex get my_file.

Еще одним преимуществом является то, что файлы не дублируются при оформлении заказа. В LFS файлы lfs представлены в виде объектов git как в.git / lfs / objects, так и в вашем рабочем хранилище. Так что, если у вас есть 20 ГБ файлов LFS, вам нужно 40 ГБ на вашем диске. В то время как в приложении git файлы имеют символические ссылки, поэтому в этом случае требуется только 20 ГБ.

Другие вопросы по тегам