How to set Mercurial upstream

2019-04-03 18:05发布

问题:

I created local hg repository for new project: hg init ; hg addremove, then I created empty upstream repo, and pushed first version there: hg push https://remoterepo.

Now, I want to set that https://remoterepo as default upstream, so I can just do hg push/pull without giving it.

I was surprised Google did not give me a straight answer with "set mercurial upstream", and I didn't find a direct answer here at SO either. So, for the benefit of all the people using SO as a howto, what's the right way to do this?

回答1:

You can do that by adding the upstream URL to /project/.hg/hgrc like this:

[paths]
default = ssh://test@bitbucket.com/repos/something
upstream = ssh://test@bitbucket.com/repos/something_else

and now upstream is an alias for repo something_else which you can then pull from or push to:

hg pull upstream
hg push upstream

Reference

hg help urls:

URLs can all be stored in your configuration file with path aliases under the [paths] section like so:

  [paths]
  alias1 = URL1
  alias2 = URL2
  ...

You can then use the alias for any command that uses a URL (for example hg pull alias1 will be treated as hg pull URL1).

Two path aliases are special because they are used as defaults when you do not provide the URL to a command:

  1. default
  2. default-push