##// END OF EJS Templates
hg: acquire wlock while updating the working directory via updatetotally...
hg: acquire wlock while updating the working directory via updatetotally updatetotally() might be invoked outside wlock scope (e.g. invocation via postincoming() at "hg unbundle" or "hg pull"). In such case, acquisition of wlock is needed for consistent view, because parallel "hg update" and/or "hg bookmarks" might change working directory status while executing updatetotally(). Strictly speaking, truly consistent updating should acquire also store lock, because active bookmark might be moved to another one outside wlock scope (e.g. pulling from other repository causes updating current active one). Acquisition of wlock in this patch ensures consistency in as same level as past "hg update".

File last commit:

r27299:74e6de99 default
r28503:138ec883 default
Show More
hgweberror.py
21 lines | 596 B | text/x-python | PythonLexer
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409 # A dummy extension that installs an hgweb command that throws an Exception.
Gregory Szorc
tests: use absolute_import in hgweberror.py
r27299 from __future__ import absolute_import
from mercurial.hgweb import (
webcommands,
)
Gregory Szorc
hgweb: send proper HTTP response after uncaught exception...
r23409
def raiseerror(web, req, tmpl):
'''Dummy web command that raises an uncaught Exception.'''
# Simulate an error after partial response.
if 'partialresponse' in req.form:
req.respond(200, 'text/plain')
req.write('partial content\n')
raise AttributeError('I am an uncaught error!')
def extsetup(ui):
setattr(webcommands, 'raiseerror', raiseerror)
webcommands.__all__.append('raiseerror')