--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-hooklib-reject_merge_commits.t Sat Sep 07 14:50:39 2019 +0200
@@ -0,0 +1,78 @@
+ $ cat <<EOF >> $HGRCPATH
+ > [extensions]
+ > hooklib =
+ >
+ > [phases]
+ > publish = False
+ > EOF
+ $ hg init a
+ $ hg --cwd a debugbuilddag '.:parent.:childa*parent/childa<parent@otherbranch./childa'
+ $ hg --cwd a log -G
+ o changeset: 4:a9fb040caedd
+ |\ branch: otherbranch
+ | | tag: tip
+ | | parent: 3:af739dfc49b4
+ | | parent: 1:66f7d451a68b
+ | | user: debugbuilddag
+ | | date: Thu Jan 01 00:00:04 1970 +0000
+ | | summary: r4
+ | |
+ | o changeset: 3:af739dfc49b4
+ | | branch: otherbranch
+ | | parent: 0:1ea73414a91b
+ | | user: debugbuilddag
+ | | date: Thu Jan 01 00:00:03 1970 +0000
+ | | summary: r3
+ | |
+ +---o changeset: 2:a6b287721c3b
+ | |/ parent: 0:1ea73414a91b
+ | | parent: 1:66f7d451a68b
+ | | user: debugbuilddag
+ | | date: Thu Jan 01 00:00:02 1970 +0000
+ | | summary: r2
+ | |
+ o | changeset: 1:66f7d451a68b
+ |/ tag: childa
+ | user: debugbuilddag
+ | date: Thu Jan 01 00:00:01 1970 +0000
+ | summary: r1
+ |
+ o changeset: 0:1ea73414a91b
+ tag: parent
+ user: debugbuilddag
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: r0
+
+ $ hg init b
+ $ cat <<EOF >> b/.hg/hgrc
+ > [hooks]
+ > pretxnchangegroup.reject_merge_commits = \
+ > python:hgext.hooklib.reject_merge_commits.hook
+ > EOF
+ $ hg --cwd b pull ../a -r a6b287721c3b
+ pulling from ../a
+ adding changesets
+ adding manifests
+ adding file changes
+ error: pretxnchangegroup.reject_merge_commits hook failed: a6b287721c3b rejected as merge on the same branch. Please consider rebase.
+ transaction abort!
+ rollback completed
+ abort: a6b287721c3b rejected as merge on the same branch. Please consider rebase.
+ [255]
+ $ hg --cwd b pull ../a -r 1ea73414a91b
+ pulling from ../a
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 0 changes to 0 files
+ new changesets 1ea73414a91b (1 drafts)
+ (run 'hg update' to get a working copy)
+ $ hg --cwd b pull ../a -r a9fb040caedd
+ pulling from ../a
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 3 changesets with 0 changes to 0 files
+ new changesets 66f7d451a68b:a9fb040caedd (3 drafts)
+ (run 'hg update' to get a working copy)