
    c6/                     V   d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	m
Z
mZmZmZ i Z ej        e          ZdZi Z ej        e          Z eddd	
            edddd ed          fddd ed          fddd ed          fddd ed          fddd ed          fddd ed          fgdd          d;d            Zd<dZ ed g  ed!                    d"             Z ed#ddd ed          fg ed$          d          d;d%            Zd=d(Z ed)d*d+d ed+          fd,d-d ed-          fdd.d ed.          fd/d0d ed0          fgd1          d2             Z ed3d4d5d ed6           ed7          fg ed8          ej        9          d:             ZdS )>a  browse the repository in a graphical way

The hgk extension allows browsing the history of a repository in a
graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not
distributed with Mercurial.)

hgk consists of two parts: a Tcl script that does the displaying and
querying of information, and an extension to Mercurial named hgk.py,
which provides hooks for hgk to get information. hgk can be found in
the contrib directory, and the extension is shipped in the hgext
repository, and needs to be enabled.

The :hg:`view` command will launch the hgk Tcl script. For this command
to work, hgk must be in your search path. Alternately, you can specify
the path to hgk in your configuration file::

  [hgk]
  path = /location/of/hgk

hgk can make use of the extdiff extension to visualize revisions.
Assuming you had already configured extdiff vdiff command, just add::

  [hgk]
  vdiff=vdiff

Revisions context menu will now display additional entries to fire
vdiff on hovered and selected revisions.
    N)_)nullrevshort)commandsobsoletepatchpycompat	registrarscmutils   ships-with-hg-core   hgk   paths   /usr/share/mercurial/hgk)defaults   debug-diff-tree   ps   patchs   generate patch   rs	   recursive   Ps   pretty   ss   stdin   Cs   copys   detect copies   Ss   search    s!   [OPTION]... NODE1 NODE2 [FILE]...T)	inferrepoc                     d fd	}	 |d         ru j                                         }|sdS |                    t          j                                      d          }|d         }t          |          dk    r	|d         }nd}|                    |          }|r|                    |          }n"|}|j        	                    |          d         }|d         r|d	         rt           ||d
           t          j        ||         |          }t          j                   }	d|	_        t          j        |||||	          }
|
D ]}                     |           n |||||           |d         sdS s)zdiff trees from two commitsNc           	         |J |g }| |                                          }| |                                          }t          j        | |         |          }|                     |||          }t	          | j                  }|j        D ]D}	
                    dt	          ||	                   t	          ||	                   |	|	fz             E|j        D ]1}	
                    d|t	          ||	                   |	|	fz             2|j	        D ]1}	
                    dt	          ||	                   ||	|	fz             2d S )Ns   :100664 100664 %s %s M	%s	%s
s   :000000 100664 %s %s N	%s	%s
s   :100664 000000 %s %s D	%s	%s
)
manifestr   matchstatusr   nullidmodifiedwritenoi18naddedremoved)reponode1node2filesmmapmmap2mstemptyfuis             +/usr/lib/python3/dist-packages/hgext/hgk.py
__difftreezdifftree.<locals>.__difftreeX   sr      =EE{##%%U$$&&M$u+u--[[q))dk"" 	 	ANN3a>>5q??Aq9:     	 	ANN3%a//1a01     	 	ANN3a>>5!Q/0   	 	r   Tstdin    r      r   prettyr   )r   opts)r$   N)finreadlinerstripr	   	oslinesepsplitlenlookup	changelogparents	catcommitr   r   r   difffeatureoptsgitdiffwrite)r+   r!   r"   r#   r$   r2   r-   liner'   diffoptschunkschunks   `           r,   difftreerF   H   s         := 		6??$$D ;;x12288>>DGE4yy1}}QE"" 	5KK&&EEEN**511!4E= 
	8H~ 0"dE3///d5k511A,R00HHLZeU!(KKKF      JtUE7777G} 	E;r   c                    d|z   }|||         }|                      dt          |                                d                   z             |                                D ]}|                      d|z             |                                }|                                                    dd          }|                      d|                                t          |d                   |d         fz             d	|	                                v r0|                      d
|	                                d	         z             |                      d|
                                z             |                      d|                                z             t          j        |t          j                  r)|                                r|                     d           |                      d|                                z             |dk    rA|                      d||                    d|                                          fz             n|                      |dz              |r|                      d           d S d S )N   
s   tree %s
r   s
   parent %s
    r   s   author %s %d %d
r0   s	   committers   committer %s
s   revision %d
s
   branch %s
s	   obsolete
s
   phase %s

   %s%s
)rA   r   	changesetr<   datedescriptionreplaceuserintextrarevbranchr   	isenabledcreatemarkersoptr   phasestrstrip)	r+   r!   nprefixctxnlprefixprL   rM   s	            r,   r=   r=      s2   v~H
{1gHHlU3==??1#5666888[[]] ' '
.1$&&&&88::D//##++E377KHH"chhjj#d1g,,Q%HHJJJsyy{{""
#ciikk,&??AAAHH*,,,HHnszz||+---$ 9:: *<<>> 	*NN=)))HHo.000}}
!4!4UH!E!E!K!K!M!MNN	
 	
 	
 	
 	u$%%% 
 r   s   debug-merge-bases   REV REVc                     |                     |          }|                     |          }|j                            ||          }|                     t	          |          dz              dS )z"output common ancestor informationrH   N)r:   r;   ancestorrA   r   )r+   r!   r"   r#   rX   s        r,   baser_      s`     KKEKKEu--AHHU1XXr   s   debug-cat-files   [OPTION]... TYPE FILEc                    d}|d         rU| j                                         }|sdS |                    t          j                                      d          \  }}d}n;|r|s7|                     t          d                     t          j	        | d           |r|dk    r$|                     t          d	                     d
S |
                    |          }t          | |||           |d         rS| j                                         }|sdS |                    t          j                                      d          \  }}ndS |dS dS )zcat a specific revisionr   r.   Nr/          s(   cat-file: type or revision not supplied
s   cat-file   commits.   aborting hg cat-file only understands commits
r0   )r4   r5   r6   r	   r7   r8   warnr   r   help_r:   r=   )r+   r!   typerr2   rY   rB   rX   s           r,   catfilerg      sg    FG} 	,v   	FKK 23399$??	q 	,1 	,GGABCCDDDN2{+++
 9GGAHIIJJJ1KKNN"dAv&&&= 	6??$$D H$677==dCCIT11E      r      treeFc                    fd}d }g }g }	g }
d}t          |          D ]\  }}|                    d          rH                    |dd                    }|	                    |           |
                    |           b|dk    r(|
                                        |                     t          |
          D ]\  }}|                    t	                                 |g}||                             |           |rx|                    d          }||	v rj                            |          D ]A}|||         vr0||                             |           |                    |           ||	v rAB|x |            D ];\  }}|vrj        	                    |          } ||
||          }|rd}|rrj                            |          }|d         j
        k    r|dt          |d                   z   z  }|d         j
        k    r|dt          |d                   z   z  }s)|                     d	t          |          |fz             nUd
k    r<|                     d	t          |          |fz             t          | |d|           nj                            |          \  }}t          t          |||f          \  }}}t          j        j        ||f          \  }}|                                d         }|                     d|||fz              ||
||          }|t"          k    r!|dk    r|                     d||fz            f  ||
||          }|t"          k    r |dk    r|                     d||fz             |                     d           |r	||k    r d S |dz  }=d S )Nc               3     K   t                    } | }dgdz  }d}	 ||k    r|}d}n||z  }t          |          D ]\}||z   | k    rdg||z
  z  |||z
  d <    n?0||z   v r(||z            ||<   ||                                          P||z   v rd||<   ]t          |dz
  dd          D ]#}||         dk    r||z   d ur||         pd fV  $|dk    rd S )Nr   d   Tr0   )r9   rangerK   )countilrE   xfullr!   s        r,   	chlogwalkzrevtree.<locals>.chlogwalk   sG     D		C#I	qyyU
5\\ 
! 
!q5E>>&'SEAI%6AeaikkNE#A$#AE{!!(((A$ !519b"-- E EQ4199q5$d"2";qt"CtDDDDAvv-	r   c                     t          |           dk    rdS d}t          t          |                     D ]}|||         v r|d|z  z  }|S )Nr   r0   )r9   rm   )ar	reachableshamaskro   s        r,   is_reachablezrevtree.<locals>.is_reachable
  sX    r77a<<1s2ww 	 	Ail""Qr   r      ^r0   s   HEADr   r/   rJ   rb   ra   s   %s %s:%ss   %s:%s rH   )	enumerate
startswithr:   appendsetaddpopr;   r<   noder   r   rA   r=   maprR   rL   r   )r+   argsr!   rr   maxnrr<   rs   ry   rv   	stop_sha1	want_sha1rn   ro   argsrX   visitr\   rZ   rx   	parentstrppp1p2hh1h2i1i2rL   s     ``                          r,   revtreer      sF        <   IIIE D// / /3>>$ 	/CG$$AQQG^^T[[--... )$$  1! 				!AI~~^++A..  IaL((aL$$Q'''LLOOO	>> "  		 )++ " "3D==N""|Iy!44 	I 5^++A..a5DK''be!44Ia5DK''be!44I  eAhh	%::;;;;""eAhh	%::;;;"dAw4444>11!44R!%!R55Bt~1B8<<Rxxzz!}a6777#|Iy"====TAXXHHY"d34455#|Iy"====TAXXHHY"d3444 %QJEE" "r   s   debug-rev-list   Hs   header   ts
   topo-orders   parents   ns	   max-counts   [OPTION]... REV...c           	      x    |d         rd}nd}d |D             }t          | ||||d         |d                    dS )zprint revisionsheaderrb   Nc                     g | ]}|S  r   ).0rq   s     r,   
<listcomp>zrevlist.<locals>.<listcomp>m  s    !Ar   	max_countr<   )r   )r+   r!   revsr2   rr   copys         r,   revlistr   ]  sW     H~ tDBdD${"3T*5EFFFFFr   s   view   ls   limits!   limit number of changes displayeds   NUMs   [-l LIMIT] [REVRANGE])helpcategoryc                    t          j        |          }t          j        |j                   d                    d |                                D                       }|j        |dz  }|                     dd          d|d                    |          fz  z   }| 	                    d|z             | 
                    |d	
           dS )z start interactive history viewerr/   c                 &    g | ]\  }}|d ||fz  S )s   --%s %sr   )r   kvs      r,   r   zview.<locals>.<listcomp>{  s*    JJJ1J
aV+JJJr   Ns   --hiddenr   r   s    %s %ss   running %s
s   hgk_view)
blockedtag)r	   byteskwargsoschdirrootjoinitems
filternameconfigdebugsystem)r+   r!   etcr2   optstrcmds         r,   viewr   q  s     %%DHTYYYJJ

JJJKKF+
))FG
$
$yFDIIcNN3K'K
KCHH_s"###IIckI*****r   )NNr3   )rh   r   F)__doc__r   mercurial.i18nr   mercurial.noder   r   	mercurialr   r   r   r	   r
   r   cmdtablecommand
testedwithconfigtable
configitemrF   r=   r_   rg   r   r   CATEGORY_CHANGE_NAVIGATIONr   r   r   r,   <module>r      s   < 
			                             
)
H
%
%
 #
!Y!+..
 


'    		xqq!2334	|T11\??3	y$)-	xqq{{+	waa 0112	y#qq||, )  = = = =@   B 		b!!J--00  10 	
HdAAhKK()A	     Ll l l ld 		y$)-	}dAAm$4$45	z4:/	|Q,0	 	 	G G	 	G 	
Hc11ABBAAfIINOA3	  
+ 
+ 
+ 
+ 
+r   