Mercurial > hg
view mercurial/pushkey.py @ 13445:61a898576888 stable
hgweb: handle invalid requests with both form data and querystring
Invalid requests could give an unhandled ErrorResponse.
Now this ErrorResponse is handled like other ErrorResponses so the client gets
an error message which also is logged on the server.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 21 Feb 2011 00:57:19 +0100 |
parents | 689bf32b3bbd |
children | 79cc89de5be1 |
line wrap: on
line source
# pushkey.py - dispatching for pushing and pulling keys # # Copyright 2010 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. import bookmarks def _nslist(repo): n = {} for k in _namespaces: n[k] = "" return n _namespaces = {"namespaces": (lambda *x: False, _nslist), "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks)} def register(namespace, pushkey, listkeys): _namespaces[namespace] = (pushkey, listkeys) def _get(namespace): return _namespaces.get(namespace, (lambda *x: False, lambda *x: {})) def push(repo, namespace, key, old, new): '''should succeed iff value was old''' pk = _get(namespace)[0] return pk(repo, key, old, new) def list(repo, namespace): '''return a dict''' lk = _get(namespace)[1] return lk(repo)