Чем отличаются 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 ГБ.