diff --git a/mercurial/hgweb/protocol.py b/mercurial/hgweb/protocol.py --- a/mercurial/hgweb/protocol.py +++ b/mercurial/hgweb/protocol.py @@ -111,7 +111,7 @@ def changegroupsubset(repo, req): def capabilities(repo, req): caps = copy.copy(basecaps) - if repo.ui.configbool('server', 'uncompressed', untrusted=True): + if streamclone.allowed(repo.ui): caps.append('stream=%d' % repo.changelog.version) if changegroupmod.bundlepriority: caps.append('unbundle=%s' % ','.join(changegroupmod.bundlepriority)) @@ -202,7 +202,7 @@ def unbundle(repo, req): def stream_out(repo, req): req.respond(HTTP_OK, HGTYPE) try: - for chunk in streamclone.stream_out(repo, untrusted=True): + for chunk in streamclone.stream_out(repo): yield chunk except streamclone.StreamException, inst: yield str(inst) diff --git a/mercurial/sshserver.py b/mercurial/sshserver.py --- a/mercurial/sshserver.py +++ b/mercurial/sshserver.py @@ -91,7 +91,7 @@ class sshserver(object): capabilities: space separated list of tokens ''' caps = copy.copy(self.caps) - if self.ui.configbool('server', 'uncompressed'): + if streamclone.allowed(self.repo.ui): caps.append('stream=%d' % self.repo.changelog.version) self.respond("capabilities: %s\n" % (' '.join(caps),)) diff --git a/mercurial/streamclone.py b/mercurial/streamclone.py --- a/mercurial/streamclone.py +++ b/mercurial/streamclone.py @@ -33,11 +33,14 @@ class StreamException(Exception): # # server writes out raw file data. -def stream_out(repo, untrusted=False): +def allowed(ui): + return ui.configbool('server', 'uncompressed', untrusted=True) + +def stream_out(repo): '''stream out all metadata files in repository. writes to file-like object, must support write() and optional flush().''' - if not repo.ui.configbool('server', 'uncompressed', untrusted=untrusted): + if not allowed(repo.ui): raise StreamException(1) entries = []