dmitry@294: Valid URLs are of the form:: dmitry@294: dmitry@294: local/filesystem/path[#revision] dmitry@294: file://local/filesystem/path[#revision] dmitry@294: http://[user[:pass]@]host[:port]/[path][#revision] dmitry@294: https://[user[:pass]@]host[:port]/[path][#revision] dmitry@294: ssh://[user[:pass]@]host[:port]/[path][#revision] dmitry@294: dmitry@294: Paths in the local filesystem can either point to Mercurial dmitry@294: repositories or to bundle files (as created by 'hg bundle' or 'hg dmitry@294: incoming --bundle'). dmitry@294: dmitry@294: An optional identifier after # indicates a particular branch, tag, or dmitry@294: changeset to use from the remote repository. See also 'hg help dmitry@294: revisions'. dmitry@294: dmitry@294: Some features, such as pushing to http:// and https:// URLs are only dmitry@294: possible if the feature is explicitly enabled on the remote Mercurial dmitry@294: server. dmitry@294: dmitry@294: Some notes about using SSH with Mercurial: dmitry@294: dmitry@294: - SSH requires an accessible shell account on the destination machine dmitry@294: and a copy of hg in the remote path or specified with as remotecmd. dmitry@294: - path is relative to the remote user's home directory by default. Use dmitry@294: an extra slash at the start of a path to specify an absolute path:: dmitry@294: dmitry@294: ssh://example.com//tmp/repository dmitry@294: dmitry@294: - Mercurial doesn't use its own compression via SSH; the right thing dmitry@294: to do is to configure it in your ~/.ssh/config, e.g.:: dmitry@294: dmitry@294: Host *.mylocalnetwork.example.com dmitry@294: Compression no dmitry@294: Host * dmitry@294: Compression yes dmitry@294: dmitry@294: Alternatively specify "ssh -C" as your ssh command in your hgrc or dmitry@294: with the --ssh command line option. dmitry@294: dmitry@294: These URLs can all be stored in your hgrc with path aliases under the dmitry@294: [paths] section like so:: dmitry@294: dmitry@294: [paths] dmitry@294: alias1 = URL1 dmitry@294: alias2 = URL2 dmitry@294: ... dmitry@294: dmitry@294: You can then use the alias for any command that uses a URL (for dmitry@294: example 'hg pull alias1' will be treated as 'hg pull URL1'). dmitry@294: dmitry@294: Two path aliases are special because they are used as defaults when dmitry@294: you do not provide the URL to a command: dmitry@294: dmitry@294: default: dmitry@294: When you create a repository with hg clone, the clone command saves dmitry@294: the location of the source repository as the new repository's dmitry@294: 'default' path. This is then used when you omit path from push- and dmitry@294: pull-like commands (including incoming and outgoing). dmitry@294: dmitry@294: default-push: dmitry@294: The push command will look for a path named 'default-push', and dmitry@294: prefer it over 'default' if both are defined.