1

是否可以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>返回 Window 机器时,我收到 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 也期待 Windows 机器上的某种 LFS 服务器。有没有办法让 LFS 在这种情况下工作,或者这只是不支持git daemon

4

1 回答 1

0

目前git daemon不提供集成的 LFS 服务器支持。

我在 git 邮件列表中找不到任何相关内容(可能值得在那里尝试),但在 git-lfs repo 问题上有一个官方答案

LFS 服务器当前作为 git-daemon(1) 之外的单独进程运行。要将 LFS 支持添加到您自己的 Git 服务器,您需要运行我们 Wiki 的实现页面中列出的符合 LFS 的服务器之一。

只要 LFS 服务器的默认 url/port 与 GIT 不同,您就可以运行参考 LFS 服务器。如果不是当然,那就更麻烦了。在那个问题讨论中,您会发现一些细节,但总结如下:

你总是可以设置 LFS url:git config lfs.url LFSURL你自己指向你的 LFS 服务器。它甚至可以直接在克隆上完成:git -c 'lfs.url=yourlocallfsserver' clone yourlocalgitserver/repo.

如果git daemonlfs 服务器可以提供“路由”服务(如 ttaylorr 建议的那样)将请求重定向到适当的服务器,那就太好了,但现在使用这些工具是不可能的。

尽管在git-lfs 实现页面上列出了一些工具,它们似乎提供了对 git 和 lfs 的组合支持,例如gitbucket

我没有尝试过它们,但它可能是 git daemon 的有效替代品。

于 2017-06-14T10:06:41.510 回答