Question: I've got a very simple Windows install of Mercurial on my machine. The 'central' repository is located at `//mymachine/hg-repos/central`.

I want remote (VPN) users to be able to create clones of this repository in the `hg-repos` directory because it gets daily backups. I have given these users full control of the `hg-repos` directory. My question is this:

If I'm on a remote machine, and I run the command:

```
hg clone //mymachine/hg-repos/central //mymachine/hg-repos/central-copy

```

is the remote machine doing most of the work?

I don't want the client to have to download all of the central repository and then upload it all back because people are going to be using this from across the country. But I suspect this is what's happening here since it works so easily.

Answer: 
Your command is running locally (after all, you are running "hg" executable from the local machine). The parameters are both remote mounted directories, and they behave as local directories. Thus, the local "hg" program works as if it was working with local files.

Is it "better" than download/reupload? I don't know, it depends on how the operating system handles "copy" operation on remote directories. Maybe it has a primitive to send a "copy" command to the server, but I really doubt that.

My bet is that it is reading the entire directory tree, and probably downloading/uploading all file contents.
It should only do a the equivalent of `cp -r`, followed by hg update. It should be a bit more efficient than a download+reupload.