Re: [PATCH] git-remote-hg : Enable use of, $GIT_DIR/hg/origin/clone/.hg/hgrc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Delcypher wrote:
> > What is the problem you are trying to solve?
> The problem I was trying to solve is I wanted my authentication
> details to be in a hgrc local to the repository.
> 
> The problem is git-remote-hg will parse
> ``.git/hg/origin/clone/.hg/hgrc`` but will ignore any settings in it
> (this seems a little silly).
> You can see that git-remote-hg parses this by placing invalid syntax
> in the file.
> 
> > Is there a way to test that this
> > code is working correctly?
> 
> 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 required
> 
> 
> However, 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.

This is what I get:

% git pull                                                                                                          /tmp/boogie[master] nysa
searching for changes
no changes found
Already up-to-date.
 % cat > .git/hg/origin/clone/.hg/hgrc <<EOF
[ui]
quiet = True
EOF
 % git pull                                                                                                          /tmp/boogie[master] nysa
Already up-to-date.

So clearly there is something different on my side.

What version of Mercurial are you using?

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]