Импорт модуля golang с объектами LFS

Мне нужно импортировать модуль с объектами LFS в мой проект go. Я уже добавил модуль в go.mod, но когда инструменты go загружают зависимости в мою папку ~/go/pkg/..., объекты LFS не загружаются. Вместо полного объекта я получаю метаданные LFS. Это приводит к сбою моей сборки.

Я уже просмотрел документы go get и go mod, но ничего не нашел по этой теме. Единственный обходной путь, который я нашел, - это вручную загрузить файлы после go mod download, но я ищу более официальное решение.


person Ramiro Berrelleza    schedule 08.10.2019    source источник
comment
Как вы добавили модуль LDS в go.mod? По команде go get? Использовали ли вы модуль LFS в своем коде? Когда я добавляю зависимости в свой код, я делаю только go get, и тогда я могу использовать этот модуль в коде.   -  person kuba_ceg    schedule 08.10.2019
comment
Нет, в моем репо я не использую LFS. Зависимость, которую я хочу импортировать в свой проект go, использует LFS. Это похоже на github.com/coconaut/gobig, но представьте, что github.com/coconaut/gobig/blob/master/models/big_binary_1.bin — это фактический класс go, поэтому он необходим во время сборки.   -  person Ramiro Berrelleza    schedule 08.10.2019


Ответы (1)


Предполагая, что go get использует стандартные команды Git для загрузки и извлечения репозиториев, должно быть достаточно установить Git LFS и запустить git lfs install. Это установит конфигурацию фильтра Git, которая нужна Git LFS в вашей конфигурации Git для каждого пользователя, а затем клонирование или извлечение изменений должно привести к извлечению правильных файлов LFS.

Вы также можете использовать параметр --skip-repo, если запускаете команду вне репозитория.

person bk2204    schedule 08.10.2019
comment
Где нужно установить git lfs install? В репо или это настройка для всего компьютера? - person Ramiro Berrelleza; 09.10.2019
comment
git lfs install --skip-repo установит свою конфигурацию в ваш ~/.gitconfig, чтобы он мог работать откуда угодно. Это для каждого пользователя; если вам нужна общесистемная настройка, добавьте --system и запустите ее с соответствующими привилегиями. - person bk2204; 09.10.2019