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