Changing Mercurial "Default" Parent URL

Let's say I have a Mercurial repository and I'm pulling from a default parent URL (the source I cloned it from).

Now I want to change the default parent URL (hostname change, or it was copied to another machine, etc.). Is there a way to do this, or do I have to re-clone from the new URL?

28678 次浏览

I just found the answer to my own question. Edit the .hg/hgrc file in the repository, change the default setting under the [paths] section. Simple!

You can even add multiple entries in the [paths] section of your .hg/hgrc file.

[paths]
default = /repo_store/hg/project1
sandbox = /repo_store/hg/project1_experimental

And then can specify its alias in the mercurial commands. default repo need not be specified but others have to be like,

hg in            # check incoming changes from default repo
hg in default    # check incoming changes from default repo
hg in sandbox    # check incoming changes from sandbox repo
hg pull sandbox  # pull changes from sandbox repo

Example of setting default BitBucket repository for Mercurial push and pull.

Normally we can use

$ hg push https://bitbucket.org/username/com.example.app

But if we want to use $ hg push without the repository URL we must add the URL to the file $REPO/.hg/hgrc. We add the following contents:

[paths]
default = https://bitbucket.org/username/com.example.app

Regarding your question, just set the default path to new URL.