##// END OF EJS Templates
pycompat: stop setting LC_CTYPE unconditionally...
pycompat: stop setting LC_CTYPE unconditionally Changeset a25343d16ebe aimed to align how LC_CTYPE is initialized across Python versions. However, as Yuya Nishihara pointed out, it changes the behavior of some str methods on Python 2. Curses requires that LC_CTYPE is initialized correctly. Therefore LC_CTYPE is set while curses is used and reset afterwards. It shouldn’t be a problem that some str methods behave differently on Python 2 while curses is used. At least it’s not a regression compared to what was done before d2227d4c9e6b. This again breaks non-ASCII filenames passed to the Subversion bindings on Python 2. Since it didn’t work before a25343d16ebe, it’s however not really a regression. A separate patch will be sent.

File last commit:

r44897:4cabeea6 default
r45545:90409803 default
Show More
enforce_draft_commits.py
45 lines | 1.4 KiB | text/x-python | PythonLexer
/ hgext / hooklib / enforce_draft_commits.py
# Copyright 2020 Joerg Sonnenberger <joerg@bec.de>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
"""enforce_draft_commits us a hook to ensure that all new changesets are
in the draft phase. This allows enforcing policies for work-in-progress
changes in overlay repositories, i.e. a shared hidden repositories with
different views for work-in-progress code and public history.
Usage:
[hooks]
pretxnclose-phase.enforce_draft_commits = \
python:hgext.hooklib.enforce_draft_commits.hook
"""
from __future__ import absolute_import
from mercurial.i18n import _
from mercurial import (
error,
pycompat,
)
def hook(ui, repo, hooktype, node=None, **kwargs):
if hooktype != b"pretxnclose-phase":
raise error.Abort(
_(b'Unsupported hook type %r') % pycompat.bytestr(hooktype)
)
ctx = repo.unfiltered()[node]
if kwargs['oldphase']:
raise error.Abort(
_(b'Phase change from %r to %r for %s rejected')
% (
pycompat.bytestr(kwargs['oldphase']),
pycompat.bytestr(kwargs['phase']),
ctx,
)
)
elif kwargs['phase'] != b'draft':
raise error.Abort(
_(b'New changeset %s in phase %r rejected')
% (ctx, pycompat.bytestr(kwargs['phase']))
)