[PATCH 2 of 2] discovery: properly filter changeset in 'peer.known' (issue4982)
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sun Dec 6 16:10:07 CST 2015
On 12/06/2015 01:04 PM, Gregory Szorc wrote:
> On Sun, Dec 6, 2015 at 12:54 PM, Pierre-Yves David
> <pierre-yves.david at ens-lyon.org <mailto:pierre-yves.david at ens-lyon.org>>
> wrote:
>
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at fb.com
> <mailto:pierre-yves.david at fb.com>>
> # Date 1449101535 28800
> # Wed Dec 02 16:12:15 2015 -0800
> # Node ID cce8d1dfcefa5495af7900ea5cff796691ca6d07
> # Parent 179e1f468d683a1b9e7e8df76af0690b454c4025
> # EXP-Topic fixknown
> # Available At http://hg.netv6.net/marmoute-wip/mercurial/
> # hg pull http://hg.netv6.net/marmoute-wip/mercurial/
> -r cce8d1dfcefa
> discovery: properly filter changeset in 'peer.known' (issue4982)
>
>
> This should be marked BC because it changes semantics of the "known"
> wire protocol command. (The new semantics make sense to me modulo the
> bug described below.)
Meh, this is fixing a bug in a wire protocol command that only affects
people using an experimental extensions. I do not think it deserve any
special flagging.
[...]
> diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
> --- a/mercurial/localrepo.py
> +++ b/mercurial/localrepo.py
> @@ -806,16 +806,17 @@ class localrepository(object):
>
> repo = (remote and remote.local()) and remote or self
> return repo[key].branch()
>
> def known(self, nodes):
> - nm = self.changelog.nodemap
> - pc = self._phasecache
> + cl = self.filtered('served').changelog
>
>
> hgweb supports specifying the filter to serve with. Therefore, I believe
> manually specifying a filter here is wrong, as a server started with `hg
> --hidden serve` won't expose hidden changesets even though you told it
> to. (This also likely points to a gap in test coverage.)
>
> Why can't you simply use self.changelog? wireproto.py should be
> operating on a repo instance with the appropriate filter (if any)
> already in place.
Ha, nice catch, I got a bit over zealous here. I've sending a V2 with
the filtering call dropped.
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list