diff -r 486de14eb394 -r 84c1a5942f1d mercurial/wireproto.py --- a/mercurial/wireproto.py Thu Jul 14 19:16:46 2016 -0700 +++ b/mercurial/wireproto.py Fri Jul 15 13:41:34 2016 -0700 @@ -536,8 +536,17 @@ def __init__(self, message): self.message = message +def getdispatchrepo(repo, proto, command): + """Obtain the repo used for processing wire protocol commands. + + The intent of this function is to serve as a monkeypatch point for + extensions that need commands to operate on different repo views under + specialized circumstances. + """ + return repo.filtered('served') + def dispatch(repo, proto, command): - repo = repo.filtered("served") + repo = getdispatchrepo(repo, proto, command) func, spec = commands[command] args = proto.getargs(spec) return func(repo, proto, *args)