##// END OF EJS Templates
server: allow customizing the default repo filter...
Joerg Sonnenberger -
r42006:d6569f1e default
parent child Browse files
Show More
@@ -0,0 +1,38 b''
1 $ hg init test
2 $ cd test
3 $ hg debugbuilddag '+2'
4 $ hg phase --public 0
5
6 $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
7 $ cat hg.pid >> $DAEMON_PIDS
8 $ cd ..
9 $ hg init test2
10 $ cd test2
11 $ hg incoming http://foo:xyzzy@localhost:$HGPORT/
12 comparing with http://foo:***@localhost:$HGPORT/
13 changeset: 0:1ea73414a91b
14 user: debugbuilddag
15 date: Thu Jan 01 00:00:00 1970 +0000
16 summary: r0
17
18 changeset: 1:66f7d451a68b
19 tag: tip
20 user: debugbuilddag
21 date: Thu Jan 01 00:00:01 1970 +0000
22 summary: r1
23
24 $ killdaemons.py
25
26 $ cd ../test
27 $ hg --config server.view=immutable serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
28 $ cat hg.pid >> $DAEMON_PIDS
29 $ cd ../test2
30 $ hg incoming http://foo:xyzzy@localhost:$HGPORT/
31 comparing with http://foo:***@localhost:$HGPORT/
32 changeset: 0:1ea73414a91b
33 tag: tip
34 user: debugbuilddag
35 date: Thu Jan 01 00:00:00 1970 +0000
36 summary: r0
37
38 $ killdaemons.py
@@ -1041,6 +1041,9 b" coreconfigitem('server', 'uncompressed',"
1041 coreconfigitem('server', 'uncompressedallowsecret',
1041 coreconfigitem('server', 'uncompressedallowsecret',
1042 default=False,
1042 default=False,
1043 )
1043 )
1044 coreconfigitem('server', 'view',
1045 default='served',
1046 )
1044 coreconfigitem('server', 'validate',
1047 coreconfigitem('server', 'validate',
1045 default=False,
1048 default=False,
1046 )
1049 )
@@ -2028,6 +2028,12 b' Controls generic server settings.'
2028
2028
2029 See also ``server.zliblevel``.
2029 See also ``server.zliblevel``.
2030
2030
2031 ``view``
2032 Repository filter used when exchanging revisions with the peer.
2033
2034 The default view (``served``) excludes secret and hidden changesets.
2035 Another useful value is ``immutable`` (no draft, secret or hidden changesets).
2036
2031 ``smtp``
2037 ``smtp``
2032 --------
2038 --------
2033
2039
@@ -64,7 +64,8 b' def getdispatchrepo(repo, proto, command'
64 extensions that need commands to operate on different repo views under
64 extensions that need commands to operate on different repo views under
65 specialized circumstances.
65 specialized circumstances.
66 """
66 """
67 return repo.filtered('served')
67 viewconfig = repo.ui.config('server', 'view')
68 return repo.filtered(viewconfig)
68
69
69 def dispatch(repo, proto, command):
70 def dispatch(repo, proto, command):
70 repo = getdispatchrepo(repo, proto, command)
71 repo = getdispatchrepo(repo, proto, command)
@@ -166,7 +167,6 b' def wireprotocommand(name, args=None, pe'
166 @wireprotocommand('batch', 'cmds *', permission='pull')
167 @wireprotocommand('batch', 'cmds *', permission='pull')
167 def batch(repo, proto, cmds, others):
168 def batch(repo, proto, cmds, others):
168 unescapearg = wireprototypes.unescapebatcharg
169 unescapearg = wireprototypes.unescapebatcharg
169 repo = repo.filtered("served")
170 res = []
170 res = []
171 for pair in cmds.split(';'):
171 for pair in cmds.split(';'):
172 op, args = pair.split(' ', 1)
172 op, args = pair.split(' ', 1)
@@ -342,7 +342,8 b' def _httpv2runcommand(ui, repo, req, res'
342 action)
342 action)
343
343
344 def getdispatchrepo(repo, proto, command):
344 def getdispatchrepo(repo, proto, command):
345 return repo.filtered('served')
345 viewconfig = repo.ui.config('server', 'view')
346 return repo.filtered(viewconfig)
346
347
347 def dispatch(repo, proto, command, redirect):
348 def dispatch(repo, proto, command, redirect):
348 """Run a wire protocol command.
349 """Run a wire protocol command.
@@ -78,6 +78,9 b' class clientpeer(wireprotov1peer.wirepee'
78 yield unmangle(f.value)
78 yield unmangle(f.value)
79
79
80 class serverrepo(object):
80 class serverrepo(object):
81 def __init__(self, ui):
82 self.ui = ui
83
81 def greet(self, name):
84 def greet(self, name):
82 return b"Hello, " + name
85 return b"Hello, " + name
83
86
@@ -94,7 +97,7 b' def greet(repo, proto, name):'
94
97
95 wireprotov1server.commands[b'greet'] = (greet, b'name')
98 wireprotov1server.commands[b'greet'] = (greet, b'name')
96
99
97 srv = serverrepo()
100 srv = serverrepo(uimod.ui())
98 clt = clientpeer(srv, uimod.ui())
101 clt = clientpeer(srv, uimod.ui())
99
102
100 def printb(data, end=b'\n'):
103 def printb(data, end=b'\n'):
General Comments 0
You need to be logged in to leave comments. Login now