
    q&f7                     ,    d Z ddlmZ ddlmZmZ ddZy)aw  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
    )_)errorpycompatNc                    |dk7  r4t        j                  t        d      t        j                  |      z        j                         |   }j                  j                  |j                               D ]\     j                         }t        |      dk  r't        fd|D              s=t        j                  t        d      z         y )Ns   pretxnchangegroups   Unsupported hook type %r)start   c              3   f   K   | ](  }|   j                         j                         k(   * y wN)branch).0preporevs     D/usr/lib/python3/dist-packages/hgext/hooklib/reject_merge_commits.py	<genexpr>zhook.<locals>.<genexpr>%   s'     AAtAw~~3::</As   .1s@   %s rejected as merge on the same branch. Please consider rebase.)r   Abortr   r   bytestr
unfiltered	changelogrevsr   parentslenall)uir   hooktypenodekwargsctxr   r   s    `     @r   hookr      s    ''kk)*X-=-=h-GG
 	
 //
D
!C~~"""3 3i++-w<!AAA++/ 	     r
   )__doc__mercurial.i18nr   	mercurialr   r   r    r    r   <module>r%      s   	 r    