The effects are much more obvious if you use a mercurial repository that uses https and then you try to push to it with authentication details in ``.git/hg/origin/clone/.hg/hgrc``. For example
[auth] cc.prefix = hg.codeplex.com cc.username = USERNAME cc.password = PASSWORD cc.schemes = https
pushing will fail because the authorisation details get completely ignored and you will get an exception raised with a stack trace like this...
Traceback (most recent call last):
File "/home/dsl11/dev/git-remote-hg/git-remote-hg", line 1254, in <module>
sys.exit(main(sys.argv))
File "/home/dsl11/dev/git-remote-hg/git-remote-hg", line 1238, in main
do_export(parser)
File "/home/dsl11/dev/git-remote-hg/git-remote-hg", line 1119, in do_export
if not push(parser.repo, peer, parsed_refs, p_revs):
File "/home/dsl11/dev/git-remote-hg/git-remote-hg", line 1007, in push
ret = push_unsafe(repo, remote, parsed_refs, p_revs)
File "/home/dsl11/dev/git-remote-hg/git-remote-hg", line 990, in push_unsafe
return remote.unbundle(cg, remoteheads, 'push')
File "/usr/lib/python2.7/site-packages/mercurial/wireproto.py", line
308, in unbundle
ret, output = self._callpush("unbundle", cg, heads=heads)
File "/usr/lib/python2.7/site-packages/mercurial/httppeer.py", line
201, in _callpush
r = self._call(cmd, data=fp, headers=headers, **args)
File "/usr/lib/python2.7/site-packages/mercurial/httppeer.py", line
171, in _call
fp = self._callstream(cmd, **args)
File "/usr/lib/python2.7/site-packages/mercurial/httppeer.py", line
118, in _callstream
resp = self.urlopener.open(req)
File "/usr/lib/python2.7/urllib2.py", line 410, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 442, in error
result = self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 897, in http_error_401
url, req, headers)
File "/usr/lib/python2.7/site-packages/mercurial/url.py", line 436,
in http_error_auth_reqed
self, auth_header, host, req, headers)
File "/usr/lib/python2.7/urllib2.py", line 872, in http_error_auth_reqed
response = self.retry_http_basic_auth(host, req, realm)
File "/usr/lib/python2.7/urllib2.py", line 878, in retry_http_basic_auth
user, pw = self.passwd.find_user_password(realm, host)
File "/usr/lib/python2.7/site-packages/mercurial/url.py", line 36,
in find_user_password
raise util.Abort(_('http authorization required'))
mercurial.error.Abort: http authorization requiredHowever, if you don't have a repository to hand you could also do the following to observe the settings in the repository's hgrc being respected
1. Clone a repository
$ git clone hg::https://hg.codeplex.com/boogie
2. Add setting to ``.git/hg/origin/clone/.hg/hgrc``
[ui] quiet = True
3. With the current of git-remote-hg, when you do a pull you see
$ git pull searching for changes no changes found Already up-to-date.
You can see that "quiet" is **not** being respected. If use my patch to git-remote-hg and run again you see
$ git pull Already up-to-date.
which shows "quiet" being respected.