Мерзавец демон с LFS?
Можно ли использовать git daemon
с репозиторием, на котором установлена LFS? У меня есть машина, которая не может подключиться к моему корпоративному VPN (без Linux-клиента), и я должен поделиться с ней репозиторием, чтобы опробовать специфичные для Linux изменения в моем коде.
Я имею:
- Зеркально отразил хранилище на компьютере с Windows.
- Бежать
git daemon --export-all --enable=receive-pack --reuseaddr
(один каталог вверх от зеркала) - Добавил пульт для этого на компьютере Linux, клонировал и внес некоторые изменения в файлы, отслеживаемые с помощью
git lfs track
, - Когда я пытаюсь
git push <remote>
вернуться к машине Windows, я получаю ошибки с LFS.
Ошибки:
Git LFS: (0 of 1 files) 0 B / 981.15 KB
Post https://192.168.2.12/repository.git/info/lfs/objects/batch: dial tcp 192.168.2.12:443: i/o timeout
Post https://192.168.2.12/repository.git/info/lfs/objects/batch: dial tcp 192.168.2.12:443: i/o timeout
error: failed to push some refs to 'git://192.168.2.12/repository.git'
Если я внесу изменения в файлы, которые не отслеживаются в LFS, это работает просто отлично. Я предполагаю, что это потому, что git также ожидает какой-то сервер LFS на компьютере с Windows. Есть ли какой-нибудь способ заставить LFS работать в этом случае, или это просто не поддерживается git daemon
?
1 ответ
В настоящее время git daemon
не предлагает встроенную поддержку LFS-сервера.
Я не смог найти ничего связанного в списке рассылки git (и, возможно, там стоит попробовать), но на вопрос репозитория git-lfs есть официальный ответ:
Сервер LFS в настоящее время работает как отдельный процесс вне вашего git-daemon (1). Чтобы добавить поддержку LFS на свой собственный Git-сервер, вам необходимо запустить один из LFS-совместимых серверов, перечисленных на странице реализации нашей вики.
Поскольку URL / порт по умолчанию для сервера LFS отличается от GIT, вы можете запустить эталонный сервер LFS. Если это не так, конечно, больше проблем. В обсуждении этого вопроса вы найдете некоторые детали, но вкратце:
Вы всегда можете установить URL LFS: git config lfs.url LFSURL
себя, чтобы указать на свой сервер LFS. Это даже можно сделать прямо на клоне: git -c 'lfs.url=yourlocallfsserver' clone yourlocalgitserver/repo
,
Было бы хорошо, если либо git daemon
или сервер lfs может предложить услугу "маршрутизации" (согласно предложению ttaylorr) для перенаправления запросов на соответствующий сервер, но сейчас это невозможно с этими инструментами.
Хотя на странице реализаций git-lfs есть несколько инструментов, предлагающих совместную поддержку git и lfs, например, gitbucket.
Я не пробовал их, но можно было бы сделать альтернативу git daemon.