我在我的机器上安装了一个非常简单的 Mercurial Windows 安装。“中央”存储库位于//mymachine/hg-repos/central
.
我希望远程(VPN)用户能够在hg-repos
目录中创建此存储库的克隆,因为它每天都有备份。我已经让这些用户完全控制hg-repos
目录。我的问题是这样的:
如果我在远程机器上,我运行命令:
hg clone //mymachine/hg-repos/central //mymachine/hg-repos/central-copy
远程机器是否在做大部分工作?
我不希望客户端必须下载所有中央存储库,然后将其全部上传回来,因为人们将在全国范围内使用它。但我怀疑这就是这里发生的事情,因为它很容易工作。
您的命令在本地运行(毕竟,您正在从本地计算机运行“hg”可执行文件)。这些参数都是远程安装的目录,它们的行为类似于本地目录。因此,本地“hg”程序就像在处理本地文件一样工作。
它比下载/重新上传“更好”吗?我不知道,这取决于操作系统如何处理远程目录上的“复制”操作。也许它有一个向服务器发送“复制”命令的原语,但我真的很怀疑。
我敢打赌,它正在读取整个目录树,并且可能正在下载/上传所有文件内容。
它应该只做相当于
cp -r
, 后跟 hg update 的操作。它应该比下载+重新上传更有效率。