##// END OF EJS Templates
tests: don't run couple of tests related to extensions loading with chg...
tests: don't run couple of tests related to extensions loading with chg The couple of files test extensions loading and debugging that. It sets `devel.debug.extensions` to True to do that. Either we have to restart chg if this config is set or just don't run these tests on chg. I tried the first way by adding the config option to chgserver.py list of config subsections but that does not seem to work.

File last commit:

r44897:4cabeea6 default
r45109:8cab8db5 default
Show More
reject_merge_commits.py
45 lines | 1.3 KiB | text/x-python | PythonLexer
/ hgext / hooklib / reject_merge_commits.py
Joerg Sonnenberger
hgext: start building a library for simple hooks...
r44897 # 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
)