Mercurial: Recommended way of sending a whole repository to someone

Every folder is a complete copy of the repository. Simply send the entire folder and they will have everything they need.

Alternatively you can clone a copy of the folder and send them the clone. This would allow them to push changes back to you if needed in the future.


What you've suggested will work fine, but you can also use hg bundle to create a changegroup file encapsulating a compressed copy of the entire repository (see hg help bundle for the full details, or this page: http://www.selenic.com/mercurial/hg.1.html#bundle).

On your machine:

hg -R /path/to/repo bundle --all my_repo.hg

Then send my_repo.hg off to the other developer, who can clone directly from that:

hg clone my_repo.hg /path/to/new/clone

(Note: this sort of assumes you're working with linux, but I imagine TortoiseHg supports something similar, since this is a basic feature of Mercurial).

EDIT: Looks like the equivalent using TortoiseHg would be to export a range of changesets as a bundle (see here: http://tortoisehg.bitbucket.io/manual/2.9/patches.html#export-patches). In this case, you want to select the very first changeset all the way up through the tip, and export as a bundle.