Мерзавец демон с LFS?

Можно ли использовать git daemon с репозиторием, на котором установлена ​​LFS? У меня есть машина, которая не может подключиться к моему корпоративному VPN (без Linux-клиента), и я должен поделиться с ней репозиторием, чтобы опробовать специфичные для Linux изменения в моем коде.

Я имею:

  1. Зеркально отразил хранилище на компьютере с Windows.
  2. Бежать git daemon --export-all --enable=receive-pack --reuseaddr (один каталог вверх от зеркала)
  3. Добавил пульт для этого на компьютере Linux, клонировал и внес некоторые изменения в файлы, отслеживаемые с помощью git lfs track,
  4. Когда я пытаюсь 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.

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