PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib64/python2.7/site-packages/hgext
Viewing File: /usr/lib64/python2.7/site-packages/hgext/patchbomb.pyc
� Hq�Qc@s�dZddlZddlZddlZddlZddlZddlZddlZddl Zddl Zddl Zddl m Z mZmZmZmZmZddl mZddlmZddlmZiZe je�ZdZddd �Zd �Zdd �Zd d ded�fddded�fddded�fd dged�fddged�fd dded�fddded�fd dd ed �fd d!d ed"�fd#d$d ed%�fd&d'ded(�fd)d*d ed+�fd d,ged-�fd.d/d ed0�fd d1d ed2�fd d3ged4�fd5d6ged7�fgZed8d9d:ded;�fd d<ded=�fd>d?ded@�fdAdBdedC�fd dDdBedE�edF�fdGdHgedI�edJ�fd dKdedL�fd dMgedN�edJ�fd dOdedP�fg eej edQ��dR��Z!dS(Ssucommand to send changesets as (a series of) patch emails The series is started off with a "[PATCH 0 of N]" introduction, which describes the series as a whole. Each patch email has a Subject line of "[PATCH M of N] ...", using the first line of the changeset description as the subject text. The message contains two or three body parts: - The changeset description. - [Optional] The result of running diffstat on the patch. - The patch itself, as generated by :hg:`export`. Each message refers to the first in the series using the In-Reply-To and References headers, so they will show up as a sequence in threaded mail and news readers, and in mail archives. To configure other defaults, add a section like this to your configuration file:: [email] from = My Name <my@email> to = recipient1, recipient2, ... cc = cc1, cc2, ... bcc = bcc1, bcc2, ... reply-to = address1, address2, ... Use ``[patchbomb]`` as configuration section name if you need to override global ``[email]`` address settings. Then you can use the :hg:`email` command to mail a series of changesets as a patchbomb. You can also either configure the method option in the email section to be a sendmail compatible mailer or fill out the [smtp] section so that the patchbomb extension can automatically send patchbombs directly from the commandline. See the [email] and [smtp] sections in hgrc(5) for details. i����N(tcmdutiltcommandsthgtmailtpatchtutil(tscmutil(t_(tbintinternalt:cCs+|r|d|7}n|j|||�S(Ns [%s](tprompt(tuiR tdefaulttrest((s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyR <scCs(|dkp'|jd�p'|jd�S(s-is an introductory message apparently wanted?itintrotdesc(tget(toptstnumber((s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt introwantedAsc Cs>g} d} d} xt|D]l} | jd�rV| jd�r| j�d} qqn| jd�st| jd�rxPn| j| �qW| r�| r�t�n|jd�r�|jd� r�d j| d �j�p�d } | d 7} n|jd �rkx*|r&|djd�r&|jd�q�W|r=|jd�nx+|rg|dj� rg|jd�q@Wnt j |d|jd��} |jd�r�| | d7} n|jd�p�|jd�}| s�|jd�r�| d j|�7} n|rMt j j �}| r9|j tj|| ||jd���ntjd j|�d|jd��}t| �}|s g|j|�D]*}|jd�s�|jd�r�|^q�}|r�|d}q |d kr�tj|d|d|d|�}q tj|d|�}nd}|jd�r+d}n|d||d<|j |�ntj| d|jd��}d j|jd!��}|r�d |}n| dj�jd"�}|s�d#||jd$�p�|f}n+tt|��}d%|||||f}tj||||jd��|d&<| |d'<||| fS((Ntt#s # Node IDi����sdiff -rs diff --gittattachtbodys is"Patch subject is complete summary.s tplainis# tgittdiffstats tinlinettestsx-patchs.patchs.diffs %b-%n.patchtseqnottotals%b.patcht attachments ; filename=sContent-Dispositiontdisplayt tflags. s [PATCH%s] %stsubjects[PATCH %0*d of %d%s] %stSubjectsX-Mercurial-Node(tNonet startswithtsplittappendt ValueErrorRtjointstriptpopRRtemailt MIMEMultipartRRt mimeencodet mimetextpatchRtnodetagstendswithRt makefilenametrstriptlentstrt headencode(R trepot patchlinesRt _charsetstidxRtnumberedt patchnameRtnodeRtlinetdst addattachmenttmsgtptbinnodettt patchtagst dispositionR#tsubjttlen((s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt makepatchEs�   + *       "% RRs-send patches as inline message text (default)taRssend patches as attachmentstiRs"send patches as inline attachmentstbccs/email addresses of blind carbon copy recipientstctccs"email addresses of copy recipientstconfirms#ask for confirmation before sendingtdRsadd diffstat output to messagestdates&use the given date as the sending dateRs,use the given file as the series descriptiontftfromsemail address of sendertnRs!print messages that would be senttmtmboxs3write messages to mbox file instead of sending themsreply-tos)email addresses replies should be sent totsR$s0subject of first message (intro or single patch)s in-reply-tosmessage identifier to reply toR#s flags to add in subject prefixesRFttosemail addresses of recipientsR.tgRsuse git extended diff formatRsomit hg patch headertotoutgoings/send changes not found in the target repositorytbtbundles-send changes not in target as a binary bundlet bundlenames"name of the bundle attachment filetNAMEtrtrevsa revision to sendtREVtforces?run even when remote repository is unrelated (with -b/--bundle)tbasesGa base changeset to specify instead of a destination (with -b/--bundle)Rs-send an introduction email for a single patchshg email [OPTION]... [DEST]...c#s�tj����jd�}�jd�}�jd�}�jd�}�jd�}�jd�} ��fd�} ���fd�} ���fd �} �jd �p�|s�tj��n|p�|p�|p�|p�| stjtd ���n|r$|r$tjtd ���n|s0|ryt|�d krZtjtd���n|rj|dpmdE} g}n|r�|r�tjtd���n|}n|r�| | |�}n|r�|�d<n|r�tj |��n tj ���fd�}���fd��dE�����fd�}�����fd�������fd�}�jd�p��j dd�p��j dd�p�t �d�j ���| r�|| �jd��}n3|r�|| | ��}n|t| |���}g�tdE����fd�}|ddt�}|s`tjtd���n|d dtd!d"�p{g}|d#�p�g}|d$�}�jd%�s��jd&�r��jtd'���jd(��x�D]}�jd)|�q�Wx>|D]6\}}}�jd*|�|r�j|�qqW�jd+��jtd,�td-�td.�f�r�tjtd/���q�n�jd+��jd0�p�dE}|dEk r�|jd1�s�d1|}n|jd2�s�|d27}q�ntjj��d }tj����jd ���dE}x_t|�D]Q\}\}}}y||d3�|d4<Wn!tk r�|d�|d4<nX|r�||d5<||d6<n| s�d3|kr�|d4}nd7tj�|d8<tjj�dd9t�|d:<�dd �d f��|d<d;j|�|d<|rYd;j|�|d <n|rud;j|�|d#<n|r�d;j|�|d$<n�jd �r��jtd<�|d=��j�d>t j!kr��j"� r�tj#t j!d>d?�}n�}tj$j$|d@t�} y!| j%|d�|jd+�Wn+t&k rg}!|!j't'j(krh�qhnX|�k r�|j)�q�qF|s��j dAdB�}"�jdC�r��j*dAdBdD�nztj+�d|�}WdE�j*dAdB|"�Xn�jtdF�|d=��j,tdG�|dH|dIt|��|sE|d#=nt-j.�}tj$j$|d@t�} | j%|d�||||||j/��qFW�j,tdJ�dE��j,tdG�dE�dES(Ksasend changesets by email By default, diffs are sent in the format generated by :hg:`export`, one per message. The series starts with a "[PATCH 0 of N]" introduction, which describes the series as a whole. Each patch email has a Subject line of "[PATCH M of N] ...", using the first line of the changeset description as the subject text. The message contains two or three parts. First, the changeset description. With the -d/--diffstat option, if the diffstat program is installed, the result of running diffstat on the patch is inserted. Finally, the patch itself, as generated by :hg:`export`. With the -d/--diffstat or --confirm options, you will be presented with a final summary of all messages and asked for confirmation before the messages are sent. By default the patch is included as text in the email body for easy reviewing. Using the -a/--attach option will instead create an attachment for the patch. With -i/--inline an inline attachment will be created. You can include a patch both as text in the email body and as a regular or an inline attachment by combining the -a/--attach or -i/--inline with the --body option. With -o/--outgoing, emails will be generated for patches not found in the destination repository (or only those which are ancestors of the specified revisions if any are provided) With -b/--bundle, changesets are selected as for --outgoing, but a single email containing a binary Mercurial bundle as an attachment will be sent. With -m/--mbox, instead of previewing each patchbomb message in a pager or sending the messages directly, it will create a UNIX mailbox file with the patch emails. This mailbox file can be previewed with any mail user agent which supports UNIX mbox files. With -n/--test, all steps will run, but mail will not be sent. You will be prompted for an email recipient address, a subject and an introductory message describing the patches of your patchbomb. Then when all is done, patchbomb messages are displayed. If the PAGER environment variable is set, your pager will be fired up once for each patchbomb message, so you can verify everything is alright. In case email sending fails, you will find a backup of your series introductory message in ``.hg/last-email.txt``. Examples:: hg email -r 3000 # send patch 3000 only hg email -r 3000 -r 3001 # send patches 3000 and 3001 hg email -r 3000:3005 # send patches 3000 through 3005 hg email 3000 # send patch 3000 (deprecated) hg email -o # send all patches not in default hg email -o DEST # send all patches not in DEST hg email -o -r 3000 # send all ancestors of 3000 not in default hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST hg email -b # send bundle of all patches not in default hg email -b DEST # send bundle of all patches not in DEST hg email -b -r 3000 # bundle of all ancestors of 3000 not in default hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST hg email -o -m mbox && # generate an mbox file... mutt -R -f mbox # ... and view it with mutt hg email -o -m mbox && # generate an mbox file ... formail -s sendmail \ # ... and use formail to send from the mbox -bm -t < mbox # ... using sendmail Before using this command, you will need to enable email in your hgrc. See the [email] section in hgrc(5) for details. R_RSRXR]Rctpatchescs��j|pd|pd�}tj|�d}�jtd�tj|��gtj�|�D]}|dkrd|^qd}|s�t ��dg}n�j d|p�d|�}|s��jtd��gSg|D]}t |�^q�S( s4Return the revisions present locally but not in dests default-pushR iscomparing with %s isoutgoing(%s) and ::%ldRsno changes found ( t expandpathRtparseurltstatusRRt hidepasswordRtrevrangeR6trevsR7(tdestRmturlRb(R9R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt getoutgoings 1c 3slxetj�|�D]Q}tj�}tj�|gd|dtj����|j�j d�VqWdS(NtfpRs ( RRlt cStringIOtStringIORtexportRtdiffoptstgetvalueR((RmRbtoutput(RR9R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt getpatches!s  cs�tjdd�}tjj|d�}zFtj��||��t|d�}|j�}|j �|SWdytj |�Wnt k r�nXtj |�XdS(Ntprefixshg-email-bundle-R_trb( ttempfiletmkdtemptostpathR+RR_topentreadtclosetunlinktOSErrortrmdir(RnttmpdirttmpfnRqtdata(RR9R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt getbundle(s   Rs,specify at least one changeset with -r or -osE--outgoing mode always on with --bundle; do not re-specify --outgoingistoo many destinationsis)use only one form to specify the revisionRmcs%d|d t�d�tj�fS(Ns <%s.%s@%s>ii(tinttsockettgetfqdn(tid(t start_time(s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pytgenmsgidYscs�jd�r-t�jd��j�}nN�jtd���j||�}�jdd�}|j|�|j�|S(NRs7 Write the introductory message for the patch series. slast-email.txttwb(RRR�twriteRtedittopenerR�(Rtsendertmsgfile(RR9R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pytgetdescription\s  c s�g}�jtd�t|��t�t|��r]�|�}|r]|j|�q]nt|�t|�dk}d}xht|�D]Z\}}|r�||}nt��|��|dt|�||� }|j|�q�W|S(Ns+this patch series consists of %d patches. i(R�RR6RR)R&t enumerateRK(Rgt patchnamestmsgsRCR=tnameRMRD(R;t makeintroRR9R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt getpatchmsgsis   c sIttt|���}�jd�p*d}|rIddj|�}nd|dt|�|f}�jd�p�t�dd|d d�}|s�dS|d|}d}�jd �r�tjt|g��}d |}nd}�|��}t j �|��jd ��}t j �|��jd ��|d <|||fS(NR#RR"s[PATCH %0*d of %d%s]iR$s(optional) Subject: RR Rs RR%( R6R7RR+R R&RRtsumRR0R8(RgRJR#RyRIRRRC(R;R�RR�R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyR��s( !cs�jd�pt�dd�}�d��}tjj�}|rp|jtj�|��jd���ntjjdd�}|j|�d�jd d �}|j d d d |�tj j |�|j|�tj �|��jd��|d<||dfgS(NR$sSubject:sA bundle for your repositoryRRt applicationsx-mercurial-bundles%s.hgR`R_sContent-DispositionR tfilenameR%(RR R.R/RRR0tMIMEBaset set_payloadt add_headertEncoderst encode_base64R8R&(R_RIRRCtdatapartR`(R;R�RR�R (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt getbundlemsgs�s+  %RUR.t patchbombtFromR�c s|j�}|jdd�j�}�j|�}|rx�jd|dj|�f�tj�|��jd��S�jd|�p��jd|�p�d}| r�|r�t�|d |�}n|r�jd||f�tj�|g��jd��S|SdS( Nt-Rs%s: %ss, RR.R�RR ( tlowertreplaceRR)R+RtaddrlistencodetconfigR (theadertaskR t configkeytopttaddrstaddr(R;Rt showaddrsR (s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pytgetaddrs�s   "tToR�sno recipient addresses providedtCcR RtBccsReply-ToRRQs Final summary: s From: %s s%s s Subject: %s s s#are you sure you want to send (yn)?s&Yess&Nospatchbomb canceledt in_reply_tot<t>sX-Mercurial-Nodes Message-Ids In-Reply-Tot ReferencessMercurial-patchbomb/%ss User-Agentt localtimetDates, s displaying s ... tPAGERtwt mangle_from_tsmtpt verifycerttinsecuretlooseNssending tsendingtitemRtwriting(0RR;RtvalidateconfigRtAbortRR6R&t parsedatetmakedateR�R tusernametlisttFalsetTrueR�t promptchoiceR'R3R.tUtilst parseaddrt addressencodeR�t TypeErrortversiont formatdateR+RjtflushR}tenvironRtpopent GeneratortflattentIOErrorterrnotEPIPER�t setconfigtconnecttprogressRrRsRv(#R R9RmRR_RSRXR]RcRgRpRxR�RnR�R�R�R�R�RZRPRNtreplytoR�RWRIRAtparentt sender_addrtsendmailRMRqt generatortinstR�(( R;R�R�RR9R�R�R�R s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyR��s_       !      !"         (  "("t__doc__R}R�R�R{Rrtemail.MIMEMultipartR.temail.MIMEBaset email.Utilstemail.Encoderstemail.Generatort mercurialRRRRRRRtmercurial.i18nRtmercurial.nodeRtcmdtabletcommandt testedwithR&R RRKt emailoptst remoteoptsR�(((s5/usr/lib64/python2.7/site-packages/hgext/patchbomb.pyt<module>.sB<$.  Q�