c6/VdZddlZddlmZddlmZmZddlmZm Z m Z m Z m Z m Z iZe jeZdZiZe jeZeddd ed d d dedfdddedfdddedfdddedfdddedfdddedfgddd;dZdabrowse 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)_)nullrevshort)commandsobsoletepatchpycompat registrarscmutilsships-with-hg-corehgkpaths/usr/share/mercurial/hgk)defaultsdebug-diff-treepspatchsgenerate patchrs recursivePsprettyssstdinCscopys detect copiesSssearchs![OPTION]... NODE1 NODE2 [FILE]...T) inferrepocd fd } |druj}|sdS|tjd}|d}t |dkr |d}nd}||}|r||}n"|}|j |d}|dr|d rt||d tj |||}tj} d| _tj||||| } | D]} | n||||| |dsdSs)zdiff trees from two commitsNc |J|g}||}||}tj|||}||||}t |j}|jD]D} dt || t || | | fzE|jD]1} d|t || | | fz2|j D]1} dt || || | fz2dS)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 matchstatusrnullidmodified writenoi18naddedremoved) reponode1node2filesmmapmmap2mstemptyfuis +/usr/lib/python3/dist-packages/hgext/hgk.py __difftreezdifftree..__difftreeXsr   =EE{##%%U $$&& M$u+u - - [[q ) )dk""  A NN3a>>5q??Aq9:      A NN3%a//1a01      A NN3a>>5!Q/0      rTstdin rrprettyr)ropts)r$N)finreadlinerstripr oslinesepsplitlenlookup changelogparents catcommitr rrdifffeatureoptsgitdiffwrite) r+r!r"r#r$r2r-liner'diffoptschunkschunks ` r,difftreerFHs : = 6??$$D ;;x12288>>DGE4yy1}}Q E""  5KK&&EEEN**511!4E = 8H~ 0"dE3/// d5k511A,R00HHLZeU!(KKKF    JtUE 7 7 7 7G}  E;rcd|z}|||}|dt|dz|D]}|d|z|}|dd}|d|t|d|dfzd | vr0|d | d z|d | z|d | ztj |tjr)| r|d |d|z|dkrA|d||d|fzn||dz|r|ddSdS)N stree %s rs parent %s rsauthor %s %d %d r0s committers committer %s s revision %d s branch %s s obsolete s phase %s %s%s )rAr changesetr<date descriptionreplaceuserintextrarevbranchr isenabledcreatemarkersoptrphasestrstrip) r+r!nprefixctxnlprefixprLrMs r,r=r=s2v~H {1gHHlU3==??1#5666888 [[]]'' .1$&&&& 88::D//##++E377KHH"chhjj#d1g,,Q%HHJJJsyy{{"" #ciikk,&??AAAHH*,,,HHnszz||+---$ 9::* <<>> * NN= ) ) )HHo .000 }}  !4!4UH!E!E!K!K!M!MN N     u$%%%  rsdebug-merge-basesREV REVc||}||}|j||}|t |dzdS)z"output common ancestor informationrHN)r:r;ancestorrAr)r+r!r"r#rXs r,baser_s` KK  E KK  E u--AHHU1XX rsdebug-cat-files[OPTION]... TYPE FILEc d}|drU|j}|sdS|tjd\}}d}n;|r|s7|tdtj |d|r|dkr$|td d S| |}t|||||drS|j}|sdS|tjd\}}ndS|dSdS) zcat a specific revisionrr.Nr/ s(cat-file: type or revision not supplied scat-filecommits.aborting hg cat-file only understands commits r0) r4r5r6r r7r8warnrrhelp_r:r=)r+r!typerr2rYrBrXs r,catfilergsgF G} ,v    FKK 23399$?? q ,1 , GGABCC D D D N2{ + + +  9   GGAHII J J J1 KKNN"dAv&&& = 6??$$D  H$677==dCCIT11 E     rtreeFcfd}d}g}g} g} d} t|D]\} } | drH| dd}| || |b| dkr(| | t| D]\} }|t |g}|| ||rx|d}|| vrj|D]A}||| vr0|| ||||| vrAB|x|D];\} }| vr j | }|| ||}|rd}|rrj|}|dj kr|dt|dzz }|dj kr|dt|dzz }s)| d t||fznUd kr<| d t||fzt||d |nj|\}}tt|||f\}}}tjj||f\}}|d}| d |||fz|| ||}|t"kr!|dkr| d ||fzf|| ||}|t"kr |dkr| d ||fz| d|r | |krdS| dz } =dS)Nc3Kt}|}dgdz}d} ||kr|}d}n||z}t|D]\}||z|krdg||z z|||z d<n?0||zvr(||z||<||P||zvrd||<]t|dz ddD]#}||dkr||zdur||pdfV$|dkrdS)NrdTr0)r9rangerK)countilrExfullr!s r, chlogwalkzrevtree..chlogwalksGD   C#I qyyU 5\\ ! !q5E>>&'SEAI%6AeaikkNE#A$#AE{!!(((A$ !519b"-- E EQ4199q5$d"2";qt"CtDDDDAvv- rct|dkrdSd}tt|D]}|||vr|d|zz}|S)Nrr0)r9rm)ar reachableshamaskros r, is_reachablezrevtree..is_reachable sX r77a<<1s2ww  Ail""Q rr^r0sHEADrr/rJrbras%s %s:%ss%s:%s rH) enumerate startswithr:appendsetaddpopr;r<noderrrAr=maprRrLr)r+argsr!rrmaxnrr<rsryrv stop_sha1 want_sha1rnroargsrXvisitr\rZrx parentstrppp1p2hh1h2i1i2rLs `` r,revtreersF<III ED////3 >>$   / CG$$A   Q      Q     G^^   T[[-- . . .)$$  1!   ! AI~~^++A..  IaL((aL$$Q'''LLOOO >>" )++""3 D==  N   " "|Iy!44  I 5^++A..a5DK''be !44Ia5DK''be !44I eAhh %::;;;;""eAhh %::;;;"dAw4444>11!44R!%!R55 Bt~1B8<<Rxxzz!}a6777#|Iy"====TAXXHHY"d34455#|Iy"====TAXXHHY"d3444 % QJEE""rsdebug-rev-listHsheaderts topo-ordersparentsns max-counts[OPTION]... REV...c x|drd}nd}d|D}t|||||d|ddS)zprint revisionsheaderrbNcg|]}|Sr).0rqs r, zrevlist..ms   !A   r max_countr<)r)r+r!revsr2rrcopys r,revlistr]sW H~  t   D BdD${"3T*5EFFFFFrsviewlslimits!limit number of changes displayedsNUMs[-l LIMIT] [REVRANGE]) helpcategoryctj|}tj|jdd|D}|j|dz }|ddd|d|fzz}| d|z| |d dS) z start interactive history viewerr/c&g|]\}}|d||fzS)s--%s %sr)rkvs r,rzview..{s*JJJ1J aV+JJJrNs--hiddenr r s %s %ss running %s shgk_view) blockedtag) r byteskwargsoschdirrootjoinitems filternameconfigdebugsystem)r+r!etcr2optstrcmds r,viewrqs   % %DHTY YYJJ JJJ K KF + ))FG $ $yFDIIcNN3K'K KCHH_s "###IIckI*****r)NNr3)rhrF)__doc__rmercurial.i18nrmercurial.noderr mercurialrrrr r r cmdtablecommand testedwith configtable configitemrFr=r_rgrrCATEGORY_CHANGE_NAVIGATIONrrrr,rs<   ) H % % #  !Y !+ . .   '  xqq!2334 |T11\??3 y$) - xqq{{+ waa 0112 y#qq||, )   ===  =@B  b!!J--0010  HdAAhKK()A    Llllld  y$) - }dAAm$4$45 z4:/ |Q,0    GG  G   Hc11ABBAAfIINOA3  + +  + + +r