##// END OF EJS Templates
discovery: avoid wrongly saying there are nothing to pull...
discovery: avoid wrongly saying there are nothing to pull We can get in a situation where a revision passed through `hg pull --rev REV` are available on the server, but not a descendant of the advertised server heads. For example the server could lying be during heads advertisement, to hide some pull request. Or obsolete/hidden content could be explicitly pulled. So in this case the lookup associated to `REV` returned successfully, but the normal discovery will find all advertised heads already known locally. This flip a special boolean `anyinc` that will prevent any fetch attempt, preventing `REV` to be pulled over. We add three line of code to detect this case and make sure a pull actually happens. My main target is to make some third party extensions happy (I expect the associated test to move upstream with the extension). However this fix already make some of the `infinitepush` test happier.

File last commit:

r43347:687b865b default
r45166:b561f3a6 stable
Show More
shallowverifier.py
19 lines | 625 B | text/x-python | PythonLexer
# shallowverifier.py - shallow repository verifier
#
# Copyright 2015 Facebook, Inc.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from mercurial.i18n import _
from mercurial import verify
class shallowverifier(verify.verifier):
def _verifyfiles(self, filenodes, filelinkrevs):
"""Skips files verification since repo's not guaranteed to have them"""
self.repo.ui.status(
_(b"skipping filelog check since remotefilelog is used\n")
)
return 0, 0