I am getting the above error whenever I try to push my changes. I am using TortoiseHg as client.
Here is the debug output for hg push
:
pushing to https://[email protected]/nulldev/windows-phone
using https://bitbucket.org/nulldev/windows-phone
proxying through http://[proxy - omitted]
http auth: user nulldev, password not set
sending capabilities command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Looking for password for user nulldev and url https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Keyring password found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
query 1; heads
sending batch command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
searching for changes
all remote heads known locally
sending branchmap command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
sending branchmap command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
preparing listkeys for "bookmarks"
sending listkeys command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
1 changesets found
list of changesets:
35b9240f7e7a5eee7936d8559962971e94fab1fc
bundling: 1/1 changesets (100.00%)
bundling: 1/1 manifests (100.00%)
bundling: Key Ring/Controls/BindableApplicationBarIconButton.xaml.cs 1/1 files (100.00%)
sending unbundle command
sending 431 bytes
bitbucket.org certificate successfully verified
sending: 0 kb
sending: 0 kb
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
sending: 0 kb
sending: 0 kb
remote: ssl required
preparing listkeys for "phases"
sending listkeys command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
try to push obsolete markers to remote
checking for updated bookmarks
preparing listkeys for "bookmarks"
sending listkeys command
bitbucket.org certificate successfully verified
[HgKeyring] Keyring URL: https://bitbucket.org/nulldev/windows-phone
[HgKeyring] Cached auth data found. Url: https://bitbucket.org/nulldev/windows-phone, user: nulldev, passwd: ********
bitbucket.org certificate successfully verified
This is usually due to a config issue on the server side (ie on BitBucket's side), as illustrated by this old ticket (which suddenly got a few new entries, all mentioning your error).
pushing to https://[email protected]/nulldev/windows-phone
http authorization required
realm: Bitbucket.org HTTP
user: nulldev
password:
searching for changes
remote: ssl required
As explained in "Remote repos":
What happens is that Mercurial’s webserver won’t let you push over plain HTTP by default, it requires you to use a HTTPS URL.
Alice can disable this requirement by using--config web.push_ssl=No
on the command line when she serves the repository
So I suppose that on BitBucket side, they need to make sure the repo are served with:
hg serve --config web.push_ssl=No --config "web.allow_push=*"