git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Delcypher <delcypher@gmail.com>,
	Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-remote-hg : Enable use of, $GIT_DIR/hg/origin/clone/.hg/hgrc
Date: Sun, 20 Apr 2014 13:12:05 -0500	[thread overview]
Message-ID: <53540df5ad0fb_18fb153d2ec8b@nysa.notmuch> (raw)
In-Reply-To: <CANNJ_zjVaymTUmSSFHfSpmcH7H2v62nsHaUoxRfi098zqLi_Ow@mail.gmail.com>

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

  reply	other threads:[~2014-04-20 18:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-21 15:17 [PATCH] git-remote-hg : Enable use of, $GIT_DIR/hg/origin/clone/.hg/hgrc Daniel Liew
2014-03-24 15:07 ` Delcypher
2014-04-12 20:01 ` Felipe Contreras
2014-04-15 15:37   ` Delcypher
2014-04-20 18:12     ` Felipe Contreras [this message]
2014-04-20 19:57       ` Delcypher
2014-04-20 19:54         ` Felipe Contreras
2014-04-20 20:36           ` Delcypher
2014-04-20 20:48             ` Felipe Contreras
2014-04-20 21:25               ` Delcypher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53540df5ad0fb_18fb153d2ec8b@nysa.notmuch \
    --to=felipe.contreras@gmail.com \
    --cc=delcypher@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).