6hrSrSSKJr SSKrSSKrSSKrSSKJr SSKJ r J r J r J r J r JrJr 0r\R""\5rSrSrSr\"S S S /\"S 5\"S 54SSS\"S5\"S54SSS\"S5\"S54SSS\"S5\"S54SSS\"S5\"S54SS S!\"S"54S#S$S!\"S%54SS&S!\"S'54SS(S\"S)5\"S*54/ \ R*-\"S+5\R,S,S-9S.5rg)/z6command to display statistics about repository history) annotationsN)_)cmdutilencoding logcmdutilpatchpycompat registrarscmutilsships-with-hg-corecSupVSR[R"XR5UR5U55nSnUR S5Hn U(aU R S5(aUS- nM'U(aU R S5(aUS- nMKU R S5(aS nMeU R S 5(dM}SnM XV4$) NrrF +-@Td)joinrdiffnodesplit startswith) uirepoctx1ctx2fmatchaddedremovedrinhunkls -/usr/lib/python3/dist-packages/hgext/churn.py changedlinesr$%sNE 88EJJtYY[$))+vF GD F ZZ  all4(( QJE  T** qLG \\$  F \\$  F  rc V^^^^^ ^ ^ ^ TRS5(aU4Sjm OHTRS5=(d TRS5m [R"TTT 5m U U4Sjm TR[ S5[ S5[ T5S9m 0m UU UU U UU4S jn[R "U[R"T5TS TS TS TS S9n[R"TU5upx[R"TXxU5Hn M T R5 T $)zCalculate stats dateformatc >UR5up[R"[R"[ U5U- 5SS6n[ R "UR[ R"TS555$)Nr&) datedatetimetimegmtimefloatr strtolocalstrftime strfromlocal)ctxttzr)optss r#getkeycountrate..getkey9sgHHJEA$$dkk%(R-&@!&DED&& h33D4FGH r oldtemplatetemplatecf>TR5 TRU5 TR5$N) pushbuffershow popbuffer)r1tmplrs r#r5r6Ds# MMO IIcN<<> !rs analyzings revisions)unittotalc>UR5nT "U5R5nT RX35nT RS5(aT RUS5SS-S4T U'OUR5n[ U5S:aTR [ S5U4-5 gUSn[TTXPU5n[T RUS5U5VVs/sH upxXx-PM snnT U'T R5 gs snnf)N changesets)rrrs$revision %d is a merge, ignoring... r ) revstripgetparentslennoterr$zip increment)r1rrCkeyrFrlinesrr"amapr5r4progressraterrs r#prepcountrate..prepNsggiSk!hhs  88L ! !#t,Q/!3Q7DIkkmG7|aBCsfLM1:D T4f=E+.txxV/De+LM+L41+LMDINsDrCr)includeexclude)patsr4revspecr) include_pats exclude_pats) rEr maketemplater makeprogressrrGwalkoptsr byteskwargs makewalkerr walkchangerevscomplete)rrrNrUr4rQwoptsrevsmakefilematcherr1r5rOrPr>s``` ` @@@@r# countraterc5s  xx  xx &>$((:*>''D$7 "  ,a oSYH D$      ! !$ 'U &\)_)_  E'11$>D%%dD4HI  Krschurnrsrevs/count rate for the specified revision or revsetsREVrsdaters+count rate for revisions matching date specsDATEts oldtemplates)template to group changesets (DEPRECATED)sTEMPLATETstemplates{author|email}stemplate to group changesetsfs dateformats/strftime-compatible format for grouping by datesFORMATcs changesetsFs"count rate by number of changesetssssorts$sort by key (default: sort by count)sdiffstats&display added/removed lines separatelysaliasessfile with email aliasessFILEs3hg churn [-d DATE] [-r REV] [--aliases FILE] [FILE]T) helpcategory inferrepoc^^^^^^Sm0nURS5nU(dD[RRUR S55(aUR S5nU(ah[ US5nUHMnUR SU;=(a S=(d SS5upU R5XHR5'MO SSS5 [[TX/UQ70UD6R55n U (dgURS 5(aU R5 OU RS S 9 [[!S U 555=(d S m[!SU 55mTR#5n TR%SU -5 U T- S- S- S- mURS5(aTS-mUUUU4Sjn O TS-mUUU4Sjn UU4SjmU HupTR'U "X55 M g![a9 UR5nU(aTR[S5U-5 GMf=f!,(df  GN=f)ahistogram of changes to the repository This command will display a histogram representing the number of changed lines or revisions, grouped according to the given template. The default template will group changes by author. The --dateformat option may be used to group the results by date instead. Statistics are based on the number of changed lines, or alternatively the number of matching revisions if the --changesets option is specified. Examples:: # display count of changed lines for every committer hg churn -T "{author|email}" # display daily activity graph hg churn -f "%H" -s -c # display activity of developers by month hg churn -f "%Y-%m" -s -c # display count of lines changed in every year hg churn -f "%Y" -s # display count of lines changed in a time range hg churn -d "2020-04 to 2020-09" It is possible to map alternate email addresses to a main address by providing a file using the following format:: = Such a file may be specified with the --aliases option, otherwise a .hgchurn file will be looked for in the working directory root. Aliases will be split from the rightmost "=". c@USU[R"U5- --$)N )rcolwidth)sr"s r#padchurn..pads"41x0033444raliasess.hgchurnrb=Nrsskipping malformed alias: %s sortc$[US5*U4$)Nrsum)xs r#churn..s#ad)Qr)rKc3<# UHup[U5v M g7fr:rx.0kvs r# churn..s1DDAQDg?c3<# UHup[U5v M g7fr:)rGr~s r#rrs*TTQ#a&&Trsassuming %i character terminal diffstatc >Uup#ST"UT5SX#4-TRST"U5-S5TRST"U5-S54-$)Ns %s %15s %s%s s+%d/-%drsdiffstat.insertedrsdiffstat.deleted)label)namerrr charnummaxnamerqrs r#formatchurn..formatsb%NE$D'"e--.0DE 002EF ( rr(c X>ST"UT5[U5ST"[U55-4-$)Ns %s %6d %s *rx)rcountrrrqs r#rrs7!D'"E ws5z**% rc&>[UT-T-5$r:)int)rmaxcountwidths r#rchurn..charnums55=H,--r)rEospathexistswjoinopenrsplitrD ValueErrorwarnrlistrcitemsrvr-max termwidthdebugwrite)rrrUr4rNrsfpr"aliasactualrPttywidthrrrrrrrqrs` @@@@@r#churnrqsp5 Dhhy!G rww~~djj&=>>**[) '4 B$%HHTQY-?4-G4$KME*0,,.D'!  "d84848>>@ AD  xx  / 0S1D1129cH*T**G||~HHH 08 ;< w  "Q & *E xx        .  $%a" A"C Dq HI  ! s1;IA H I>I?III I)__doc__ __future__rr*rr+mercurial.i18nr mercurialrrrrr r r cmdtablecommand testedwithr$rcr[CATEGORY_MAINTENANCErrr#rs="     H % #   9x      @ A fI      < = gJ      : ; kN      - . kN      @ A iL   }eQ'L%MN wq!HIJ k5!$M"NO j#q!;