##// END OF EJS Templates
hgweb: expose input stream on parsed WSGI request object...
hgweb: expose input stream on parsed WSGI request object Our next step towards moving away from wsgirequest to our newer, friendlier parsedrequest type is input stream access. This commit exposes the input stream on the instance. Consumers in the HTTP protocol server switch to it. Because there were very few consumers of the input stream, we stopped storing a reference to the input stream on wsgirequest directly. All access now goes through parsedrequest. However, wsgirequest still may read from this stream as part of cgi.parse(). So we still need to create the stream from wsgirequest. Differential Revision: https://phab.mercurial-scm.org/D2771

File last commit:

r35243:490df753 default
r36873:da4e2f87 default
Show More
rewriteutil.py
53 lines | 1.6 KiB | text/x-python | PythonLexer
# rewriteutil.py - utility functions for rewriting changesets
#
# Copyright 2017 Octobus <contact@octobus.net>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from .i18n import _
from . import (
error,
node,
obsolete,
revset,
)
def precheck(repo, revs, action='rewrite'):
"""check if revs can be rewritten
action is used to control the error message.
Make sure this function is called after taking the lock.
"""
if node.nullrev in revs:
msg = _("cannot %s null changeset") % (action)
hint = _("no changeset checked out")
raise error.Abort(msg, hint=hint)
publicrevs = repo.revs('%ld and public()', revs)
if len(repo[None].parents()) > 1:
raise error.Abort(_("cannot %s while merging") % action)
if publicrevs:
msg = _("cannot %s public changesets") % (action)
hint = _("see 'hg help phases' for details")
raise error.Abort(msg, hint=hint)
newunstable = disallowednewunstable(repo, revs)
if newunstable:
raise error.Abort(_("cannot %s changeset with children") % action)
def disallowednewunstable(repo, revs):
"""Checks whether editing the revs will create new unstable changesets and
are we allowed to create them.
To allow new unstable changesets, set the config:
`experimental.evolution.allowunstable=True`
"""
allowunstable = obsolete.isenabled(repo, obsolete.allowunstableopt)
if allowunstable:
return revset.baseset()
return repo.revs("(%ld::) - %ld", revs, revs)