Mercurial 1.7.1 released!

Matt Mackall mpm at selenic.com
Wed Nov 24 18:14:19 UTC 2010


On Wed, 2010-11-24 at 13:01 +0100, Jonny Dee wrote:
> Hi Matt,
> 
> - Zitierten Text ausblenden -
>         > > >         pushing/
>         > > >         > pulling bookmarks over SSH still doesn't work
>         with 1.7.1.
>         > > >         Invoking "hg
>         > > >         > pull -B" results in "no changed bookmarks
>         found", even if
>         > > >         the remote
>         > > >         > repository has bookmarks while the local clone
>         doesn't. I've
>         > > >         made sure
>         > > >         > the remote machine (Ubuntu Linux) as well as
>         my local
>         > > >         machine (Windows
>         > > >         > XP) have 1.7.1 installed with the "bookmarks"
>         extension
>         > > >         activated.
>         > >
>         > > >         The bugfix in 1.7.1 only affects push on HTTP.
>         All other
>         > > >         combinations of
>         > > >         in/out/push/pull with http/ssh/local are tested
>         in the test
>         > > >         suite.
>         > >
>         > > >         Please try the following test:
>         > >
>         > > >          $ hg debugpushkey ssh://yourserver/your/repo
>         namespaces
>         > > >          namespaces
>         > > >          bookmarks
>         > >
>         > > >         If you get back anything from this command, the
>         protocol
>         > > >         portion of
>         > > >         bookmarks is working perfectly. But if you get
>         back just
>         > > >         'namespaces',
>         > > >         that means bookmarks are NOT properly enabled.
>         That is likely
>         > > >         a
>         > > >         configuration problem due to trust:
>         > >
>         > > >        http://mercurial.selenic.com/wiki/Trust
>         > >
>         > > > I've just executed the command you suggested. And,
>         indeed, I do only
>         > > > get back just 'namespaces'. However, there seems to be
>         no issue
>         > > > regarding 'Trust'. I've made sure the file ownerships of
>         the "server
>         > > > side" repository are correct.
>         > >
>         > > Correct as in owned by you?
>         >
>         
>         > I've narrowed down the problem. We use "mercurial-server"
>         software for
>         > shared SSH access. And the issue with not being able to pull
>         bookmarks
>         > only arises if I access a repository through this software.
>         As soon as
>         > I access this repository without it there is no problem
>         anymore. So it
>         > seems like this doesn't have anything to do with Mercurial
>         itself.
>         
>         It's probably still a trust issue. Make sure you -really-
>         understand the
>         above wiki page and what Unix user is involved in your
>         mercurial-server
>         config.
> 
> I don't think so. At least, it's not an obvious trust issue.

Well it is pretty obviously a trust issue to me because a) it's clear
that the extension isn't being loaded and b) it's correlated with remote
access and crossing ownership domains. Mercurial-server isn't magic, it
just calls 'hg'.

>  I've created a [trusted] section in the Mercurial config file  and
> I've added all groupsand users that might be somehow involved with
> remote SSH access (although I think the only user which is involved is
> the user I use to create the SSH connection) and I still don't get the
> expected result.

This is what most people who don't understand trust say. And this is
where I say: are you sure Mercurial trusts the contents of your config
file?

The usual problem is:

Alice has a repo X with a config file that enables a feature or hook or
extension Y.

Bob uses repo X, Bob's copy of Mercurial doesn't know or trust Alice,
and thus ignores X/.hg/hgrc because Alice owns it and thus does not get
Y enabled.

At this point, if Alice doesn't understand trust, she'll try to add Bob
to the "[trusted]" section of her config. Or she'll even add herself.
Ok, great, now Alice's hg trusts Bob (and it already trusted her). But
that was never the problem. Bob's got to get his hg to trust Alice.

In your case, replace Bob with "Unix account used by mercurial-server"
and Y with "bookmark extension". And you get to be Alice.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list