我正在使用NodeJS-Git-Server,它实际上允许客户端连接到我的服务器,并在磁盘上克隆裸git存储库。 NodeJSGitServer与客户端的git进程创建连接,以建立其计算机上丢失的数据包,然后服务器将其流式传输到客户端。这是标准的git protocol。
NodeJSGitServer生成运行git-upload-pack
和git-receive-pack
的子进程,然后将其通过管道传递给客户端的响应。
这些git命令接受本地git仓库路径的参数。因此,似乎我需要将所有裸git存储库托管在运行这些git命令的同一台服务器上,以与客户端进行通信。有什么办法可以将这些裸git repos托管在与我的节点服务器不同的服务器上,例如S3存储桶。我计划使用Heroku,并且它们的存储是短暂且有限的。
答案 0 :(得分:1)
nodejs服务器似乎仅处理本地路径上可访问的存储库,
AFAIK,git-upload-pack
和git-receive-pack
旨在在托管存储库的系统上运行
您可以尝试在本地挂载远程存储库,例如使用nfs或sshfs。不过要测试一下性能。