
    q&f
                        d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 i Z e
j                  e      ZdZej                  Zej                  Zddg  ed       ed      fgZ ed	eez   ez    ed
      ej"                  d      d        Zy)z5close arbitrary heads without checking them out first    )_)	bookmarkscmdutilcontexterror
logcmdutilpycompat	registrars   ships-with-hg-core   rs   revs   revision to checks   REVs   close-head|close-headss   [OPTION]... [REV]...T)helpcategory	inferrepoc                 V  
 
fd}|t        j                  dg             z  }t        j                  |      }|st	        j
                  t        d            g }j                         D ]"  }|j                  j                  |             $ |D ch c]  }|   j                          }}|D ]'  }||vst	        j
                  t        d      |z         t        j                  | t        j                              st	        j
                  t        d            ddi
j                         5  j!                         5  |D ]$  }|   }	|	j#                         }|
d<    ||	       & 	 d	d	d	       d	d	d	       y
c c}w # 1 sw Y   xY w# 1 sw Y   y
xY w)a	  close the given head revisions

    This is equivalent to checking out each revision in a clean tree and running
    ``hg commit --close-branch``, except that it doesn't change the working
    directory.

    The commit message must be specified with -l or -m.
    c                 D   t        j                  | d gg d j                  d      j                  d            }j                  d      5  j	                  |d      }t        j                  | d g|       |j                  |       d d d        y # 1 sw Y   y xY w)Nuserdate)parentstextfiles	filectxfnr   r   extras   commitT)r   memctxgettransaction	commitctxr   updatemarkcommitted)revcctxretr   messageoptsrepos      1/usr/lib/python3/dist-packages/hgext/closehead.pydocommitzclose_branch.<locals>.docommit2   s    ~~$K&!&!	
 i( 	$..t,CTC;4s#	$ 	$ 	$s   =BBr   s   no revisions specifieds    revision is not an open head: %ds)   no commit message specified with -l or -ms   close   1s   branchNr   )tupler   r   revranger   Abortr   	branchmapextendbranchheadsr   r   
logmessager	   byteskwargswlocklockbranch)uir"   revsr!   r$   headsr0   hr   rr   r    s    ` `      @@r#   close_branchr6   !   s   "$  	E$((5"%&&DtT*Dkk!5677E.." /T%%f-./$)*qT!W[[]*E* Le++a CDsJKKL   X%9%9$%?@Gkk!HIJJtE	 tyy{  	CS	AXXZF%E)QK		  ! +   s*   FF*F=FF	FF(N)__doc__mercurial.i18nr   	mercurialr   r   r   r   r   r	   r
   cmdtablecommand
testedwith
commitoptscommitopts2commitopts3CATEGORY_CHANGE_MANAGEMENTr6        r#   <module>rC      s    <    
)

H
%
 #

!!fb!$8"91V9EF 	{*3333rB   