##// 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
reject_merge_commits.py
45 lines | 1.3 KiB | text/x-python | PythonLexer
/ hgext / hooklib / reject_merge_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.
"""reject_merge_commits is a hook to check new changesets for merge commits.
Merge commits are allowed only between different branches, i.e. merging
a feature branch into the main development branch. This can be used to
enforce policies for linear commit histories.
Usage:
[hooks]
pretxnchangegroup.reject_merge_commits = \
python:hgext.hooklib.reject_merge_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"pretxnchangegroup":
raise error.Abort(
_(b'Unsupported hook type %r') % pycompat.bytestr(hooktype)
)
ctx = repo.unfiltered()[node]
for rev in repo.changelog.revs(start=ctx.rev()):
rev = repo[rev]
parents = rev.parents()
if len(parents) < 2:
continue
if all(repo[p].branch() == rev.branch() for p in parents):
raise error.Abort(
_(
b'%s rejected as merge on the same branch. '
b'Please consider rebase.'
)
% rev
)