mercurial-server如何处理请求

背景

我目前使用LShift的mercurial服务器来托pipe一些汞储存库。 看起来存储库的数量以及它们的规模预计将会大大增长。

为了解决这个问题,我正在计划将托pipe在独立于托pipemercurial-server应用程序的机器的文件服务器集群上的存储库。

我最担心的是,mercurial-server应用程序如何处理来自客户端的请求? 采取“hg clone ssh:// hg @ server / repo”的请求。 我知道它validation密钥,并确保用户被允许克隆该回购,但是,然后处理请求的隧道或分stream到文件服务器?

基本上,mercurial-server机器是否需要传输数据GB的容量或者只是足够的容量来parsing请求?

编辑

嘿,保罗,我意识到我的要求并不是很清楚,所以我正在再试一次。 我真的很想知道,当回购是物理上分开时,mercurial-server将如何工作。 mercurial服务器是否需要处理stream经它的实际存储库的带宽?

初始请求:

请求

潜在的实施1

文件通过mercurial-server传递:

响应1

潜在的实施2

文件直接发送给请求者(不使用mercurial-server带宽):

RESPONSE2

好的,所以将mercurial-server主机连接到文件服务器主机的协议是Mercurial本身。 在这种情况下,主机将需要大量的带宽和大量的存储空间。

你的问题是不是真的与mercurial服务器 – 完全相同的考虑适用,如果你只是通过ssh没有它使用Mercurial。 我怕我会停下来 – 我现在没有太多的时间 – 我希望你能find解决问题的办法!

mercurial-server主机将如何与文件服务器通话? 通过NFS,或其他一些远程文件系统协议?

mercurial-server希望存储库目录看起来像一个文件系统,并且(通过Mercurial)使用普通的文件系统操作来读取和写入它们,但是不关心它是真正的本地磁盘还是例如NFS挂载。