How to save username and password with Mercurial?
You can make an auth section in your .hgrc
or Mercurial.ini
file, like so:
[auth]
bb.prefix = https://bitbucket.org/repo/path
bb.username = foo
bb.password = foo_passwd
The ‘bb’ part is an arbitrary identifier and is used to match prefix with username and password - handy for managing different username/password combos with different sites (prefix)
You can also only specify the user name, then you will just have to type your password when you push.
I would also recommend to take a look at the keyring extension. Because it stores the password in your system’s key ring instead of a plain text file, it is more secure. It is bundled with TortoiseHg on Windows, and there is currently a discussion about distributing it as a bundled extension on all platforms.
There are three ways to do this: use the .hgrc file, use ssh or use the keyring extension
1. The INSECURE way - update your ~/.hgrc file
The format that works for me (in my ~/.hgrc file) is this
[ui]
username=Chris McCauley <[email protected]>
[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password
You can configure as many repos as you want by adding more triplets of prefix,username, password by prepending a unique tag.
This only works in Mercurial 1.3 and obviously your username and password are in plain text - not good.
2. The secure way - Use SSH to AVOID using passwords
Mercurial fully supports SSH so we can take advantage of SSH's ability to log into a server without a password - you do a once off configuration to provide a self-generated certificate. This is by far the safest way to do what you want.
You can find more information on configuring passwordless login here
3. The keyring Extension
If you want a secure option, but aren't familiar with SSH, why not try this?
From the docs ...
The extension prompts for the HTTP password on the first pull/push to/from given remote repository (just like it is done by default), but saves the password (keyed by the combination of username and remote repository url) in the password database. On the next run it checks for the username in .hg/hgrc, then for suitable password in the password database, and uses those credentials if found.
There is more detailed information here