topics: add a config to reject draft changeset without topic on a server
This patch adds a new config option experimental.topic-mode.server which if
sets to True, the server won't accept any draft changeset without topic on it.
In case both `experimental.topic-mode.server` and
`experimental.topic.publish-bare-branch` are set to True, the enforce-topic one
is respected.
Tests are added for it. The CHANGELOG file is also updated mentioning about the
config option.
# setup config and various utility to test new heads checks on push
. $TESTDIR/testlib/common.sh
cat >> $HGRCPATH <<EOF
[ui]
# simpler log output
logtemplate ="{node|short} ({phase}): {desc}\n"
[phases]
# non publishing server
publish=False
[extensions]
# we need to strip some changeset for some test cases
strip=
evolve=
EOF
setuprepos() {
echo creating basic server and client repo
hg init server
cd server
mkcommit root
hg phase --public .
mkcommit A0
cd ..
hg clone server client
}