Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/protocol.py @ 9713:d193cc97c4e8
hgweb/sshserver: extract capabilities for easier modification
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Thu, 05 Nov 2009 11:07:01 +0100 |
parents | 8269fe2d48f6 |
children | 25e572394f5c |
comparison
equal
deleted
inserted
replaced
9712:18b134ef294c | 9713:d193cc97c4e8 |
---|---|
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> | 3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
4 # | 4 # |
5 # This software may be used and distributed according to the terms of the | 5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2, incorporated herein by reference. | 6 # GNU General Public License version 2, incorporated herein by reference. |
7 | 7 |
8 import cStringIO, zlib, tempfile, errno, os, sys, urllib | 8 import cStringIO, zlib, tempfile, errno, os, sys, urllib, copy |
9 from mercurial import util, streamclone | 9 from mercurial import util, streamclone |
10 from mercurial.node import bin, hex | 10 from mercurial.node import bin, hex |
11 from mercurial import changegroup as changegroupmod | 11 from mercurial import changegroup as changegroupmod |
12 from common import ErrorResponse, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR | 12 from common import ErrorResponse, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR |
13 | 13 |
19 'changegroupsubset', 'capabilities', 'unbundle', 'stream_out', | 19 'changegroupsubset', 'capabilities', 'unbundle', 'stream_out', |
20 'branchmap', | 20 'branchmap', |
21 ] | 21 ] |
22 | 22 |
23 HGTYPE = 'application/mercurial-0.1' | 23 HGTYPE = 'application/mercurial-0.1' |
24 basecaps = 'lookup changegroupsubset branchmap'.split() | |
24 | 25 |
25 def lookup(repo, req): | 26 def lookup(repo, req): |
26 try: | 27 try: |
27 r = hex(repo.lookup(req.form['key'][0])) | 28 r = hex(repo.lookup(req.form['key'][0])) |
28 success = 1 | 29 success = 1 |
107 yield z.compress(chunk) | 108 yield z.compress(chunk) |
108 | 109 |
109 yield z.flush() | 110 yield z.flush() |
110 | 111 |
111 def capabilities(repo, req): | 112 def capabilities(repo, req): |
112 caps = ['lookup', 'changegroupsubset', 'branchmap'] | 113 caps = copy.copy(basecaps) |
113 if repo.ui.configbool('server', 'uncompressed', untrusted=True): | 114 if repo.ui.configbool('server', 'uncompressed', untrusted=True): |
114 caps.append('stream=%d' % repo.changelog.version) | 115 caps.append('stream=%d' % repo.changelog.version) |
115 if changegroupmod.bundlepriority: | 116 if changegroupmod.bundlepriority: |
116 caps.append('unbundle=%s' % ','.join(changegroupmod.bundlepriority)) | 117 caps.append('unbundle=%s' % ','.join(changegroupmod.bundlepriority)) |
117 rsp = ' '.join(caps) | 118 rsp = ' '.join(caps) |