Ë Ð W_¢O jãó^—dZddlZddlmZddlmZmZmZmZ m Z m Z ddl m Z ddlmZmZd„Zy) z,setup for largefiles repositories: reposetupéN)Ú_)ÚerrorÚ extensionsÚ localrepoÚmatchÚscmutilÚutil)Ú timestampé)Ú lfcommandsÚlfutilcóT‡‡‡—‰j«syGˆˆˆfd„d‰j«Š‰‰_tjg‰_‰j g‰_ˆfd„}‰jjd|«d„}‰jdd|d«‰jdd|d«y) Nc󖕇—eZdZdZdZˆˆfd„Zej dˆˆˆˆfd„ «Zˆˆfd„Z d ˆˆfd„ Z d„Z ˆxZ S) úreposetup..lfilesrepoTFcóÜ•—t‰|�|«}|jrOd„}tj|d|«d„}tj|d|«dd„}tj|d|«|S)Ncóh—|«}|D�cgc]}tj|«xs|‘Œc}Scc}w©N)r Ú splitstandin)ÚorigÚ filenamesÚfs ú>usr/lib/python3.12/site-packages/hgext/largefiles/reposetup.pyÚfilesz8reposetup..lfilesrepo.__getitem__..files4s4€Ù $£�IÙAJÓKÁ¸AœF×/Ñ/°Ó2Ò7°aÑ7ÀÑKÐKùÒKsŒ /rcóR‡—|«}Gˆfd„d|j«Š‰|_|S)Ncó"•‡—eZdZˆˆfd„ZˆxZS)úSreposetup..lfilesrepo.__getitem__..manifest..lfilesmanifestcób•—t‰|�}||«xs|tj|««Sr)ÚsuperÚ __contains__r Ústandin)ÚselfÚfilenamerÚ __class__Úlfilesmanifests €€rrz`reposetup..lfilesrepo.__getitem__..manifest..lfilesmanifest.__contains__>s3ø€Ü#(¨¸Ñ#K˜DÙ#'¨£>ò$±TÜ &§¡¨xÓ 8ó6ðó)Ú__name__Ú __module__Ú __qualname__rÚ __classcell__)r#r$s@€rr$r=s ù„÷ñr%r$)r#)rÚman1r$s @rÚmanifestz;reposetup..lfilesrepo.__getitem__..manifest:s(ø€Ù›6�Dö¨¯©ôð&4�D”NØ�Kr%r+có‡— |� ||||«}|S|||«} |S#tj$rV|�|tj|«||«}n|tj|«|«}|jŠˆfd„|_Y|SwxYw)Ncó•—‰«dzS)Nó©)Úolddatas€rÚzLreposetup..lfilesrepo.__getitem__..filectx..Ws ø€©g«i¸%Ò.?r%)rÚ LookupErrorr r Údata)rÚpathÚfileidÚfilelogÚresultr0s @rÚfilectxz:reposetup..lfilesrepo.__getitem__..filectxIs›ø€ð @Ø"Ð.Ù%)¨$°¸Ó%@˜Fð"�Mñ&*¨$°Ó%7™Fð"�Møô!×,Ñ,ò@ð#Ð.Ù%)¬&¯.©.¸Ó*>ÀÈÓ%P™Fá%)¬&¯.©.¸Ó*>ÀÓ%G˜FØ"(§+¡+˜Û&?˜� Ø!�Mð@úsƒ ‘ �A%BÂBr8)NN)rÚ __getitem__ÚlfstatusrÚ wrapfunction)r!ÚchangeidÚctxrr+r8r#Ú lfilesrepos €€rr9z)reposetup..lfilesrepo.__getitem__0slø€Ü˜  DÑ5°hÓ?ˆCØ�}Š}òLô×'Ñ'¨¨W°eÔ<ò  ô×'Ñ'¨¨Z¸ÔBó"ô"×'Ñ'¨¨Y¸Ô@àˆJr%c ó¢ •‡‡0—|||} } }t‰2‰�} ‰js| ||||| | |«Sd‰_‰|} ‰|} | j«duŠ0‰0xr| ‰dk(}|€t j «} ‰j d«}d}|5‰jj‰«5tj‰4‰«}|j «s1|D] }||«sŒ n!| ||||| | |«cddd«cddd«Sˆˆ0fd„}tj|«}||j «|_| |||||||«}‰0�rˆfd„}|j D�cgc] }||«sŒ |‘Œc}|_|j|gd| d¬«\}}}|j"|j$|j&|j(|j*f\}}}}}|rö‰3d}|D]ê}tj,|«} | | vr|j/|«Œ.tj0| | «tj2‰j5|««k7r|j/|«Œ}| r|j/|«||j7«}|j8}!|j:}"t=j>||«}#|#€ŒÔ|!|"|#f}$|jA||$«Œì�n||z|z|z}%ggg}}}‰jjB}&|%D]Æ}tj,|«} | | vrš‰j5|«}'tj0| | «tj2|'«k7s4|&rDd| jE| «vtGtjH|'««k7r|j/|«Œ¡| sŒ¤|j/|«Œ¶|j/|«ŒÈ|D�cgc]}tj,|«| vr|‘Œ}}| jKtjL‰««D]S} tjN| «}||«sŒ!||vsŒ&|j/|«‰jPjS| d¬«ŒUtU|«}|D�cgc]}|‰jvsŒ|‘Œ}}|d D�cgc] }||vsŒ|‘Œ c}|d <tW|«}(tW|d «jY|(«|d <tW|d «jY|(«|d <|D�)�*cgc](})|)D�*cgc]}*tjZ|*«rŒ|*‘Œc}*‘Œ*}+})}*||||gg|f},t]|+|,«D�-�.cgc]\}-}.t_|-|.z«‘Œ}}-}.n6|D�/�cgc])}/|/D�cgc]}tjN|«xs|‘Œc}‘Œ+}}/}|r |ja‰jc««n|je«ddd«ddd«d‰_tgjŽS#tj$rtj«}d}Y�Œ~wxYwcc}wcc}wcc}wcc}wcc}*wcc}*})wcc}.}-wcc}wcc}}/w#1swYŒŠxYw#1swYŒŽxYw) NFó.Tcóü•—‰s|Sg}‰j}|D]c}tj|«}||vr|j|«Œ.|j |«r|j ||f«ŒS|j|«Œe|Sr)Údirstater r ÚappendÚhasdirÚextend)rÚnewfilesrBrÚsfr!Úworkings €€rÚ tostandinsz8reposetup..lfilesrepo.status..tostandins¦suø€Ù"Ø$˜ Ø!�HØ#Ÿ}™}�HÛ"˜Ü#Ÿ^™^¨AÓ.˜Ø ™>Ø$ŸO™O¨BÕ/Ø%Ÿ_™_¨RÔ0ð%ŸO™O¨Q°¨GÕ4à$ŸO™O¨AÕ.ð#ð$�Or%cót•—tj|«}‰j}||vxs|j|«Sr)r r rBrD)rrGrBr!s €rÚ sfindirstatez:reposetup..lfilesrepo.status..sfindirstate¿s2ø€Ü#Ÿ^™^¨AÓ.˜Ø#'§=¡=˜Ø! X˜~ÒD°·±ÀÓ1DÐDr%)ÚsubreposÚignoredÚcleanÚunknownóx)Ú ignoremissingééé)4rÚstatusr:ÚrevÚmatchmodÚalwaysÚwlockrÚ LockErrorr ÚnullcontextmanagerrBÚrunning_statusr ÚopenlfdirstateÚcopyÚ_filesÚmodifiedÚaddedÚremovedÚdeletedrNr rCÚ readasstandinÚhashfileÚwjoinÚlstatÚst_modeÚst_sizer Úreliable_mtime_ofÚ set_cleanÚ _checkexecÚflagsÚboolÚ getexecutableÚwalkÚgetstandinmatcherrÚwvfsÚ unlinkpathÚlistÚsetÚ differenceÚ isstandinÚzipÚsortedÚwriteÚcurrenttransactionÚ invalidater)5r!Únode1Únode2rrMrNrOÚ listsubreposÚ listignoredÚ listcleanÚ listunknownrÚctx1Úctx2Ú parentworkingrYÚgotlockÚ lfdirstaterrIÚmr7rKÚunsureÚsÚmtime_boundaryr`rarbrcÚwctxÚlfiler ÚmodeÚsizeÚmtimeÚ cache_dataÚtocheckÚ checkexecÚabslfileÚlfilesÚfilelistÚfnÚnormalsr:Úlist1Úlist2ÚitemsrHr#r>ÚrepoÚuis5` @€€€€rrUz$reposetup..lfilesrepo.statusdseú€ð3:¸5À' K˜ˆKܘ TÑ1ˆDØ—=’=ÙØØØØØØØ óðð"ˆDŒMؘ‘;ˆDؘ‘;ˆDØ—h‘h“j DÐ(ˆGØ#Ò:¨°°T± Ñ(:ˆMàˆ}Ü Ÿ™Ó)�ð 🠙  5Ó)�Ø�ò˜Ÿ ™ ×4Ñ4°TÕ:ô $×2Ñ2°2°tÓ<� Ø—|‘|”~Û'˜Ù  �8Ù!ð(ñ $Ø!Ø!Ø!Ø'Ø%Ø'Ø(ó ÷;Ð:—‘õ0$ô"—I‘I˜eÓ$�Ù% a§h¡hÓ/�”áØ˜5 ! W¨e°W¸ló�òôEð 05¯|ª|Ó#O©|¨!¹|ÈA½¢A¨|Ñ#O�E”Lð1;×0AÑ0AØØ!#Ø %Ø'Ø %ð 1Bó1Ñ-�F˜A˜~🠙 ØŸ™ØŸ ™ ØŸ ™ ØŸ™ð BÑ>�X˜u g¨w¸ñ%Ø# D™z˜Û%+˜EÜ&,§n¡n°UÓ&;˜GØ&¨dÑ2à (§¡°Õ 6Ü!'×!5Ñ!5Ø $ W¡ ó"ä!'§¡°·±¸EÓ1BÓ!Cò"Dð!)§¡°Õ 6á#,Ø$)§L¡L°Ô$7Ø$(¨¡K×$5Ñ$5Ó$7 Ø'(§y¡y Ø'(§y¡y Ü(1×(CÑ(CØ$% ~ó)" ð$)Ñ#4Ø26¸¸eÐ1D JØ$.×$8Ñ$8¸À Õ$Kò)&,ð,#)¨8Ñ"3°eÑ";¸eÑ"C˜Ø13°R¸¨ %˜Ø$(§M¡M×$<Ñ$<˜ ã%,˜EÜ&,§n¡n°UÓ&;˜GØ&¨$™Ø+/¯:©:°eÓ+< ä$*×$8Ñ$8¸¸g¹Ó$GÜ'-§¡°xÓ'@ò%Añ%.Ø)-°·±¸GÓ1DÐ)DÜ'+¬F×,@Ñ,@ÀÓ,JÓ'Kò)Lð%-§O¡O°EÕ$:Ú%.Ø$)§L¡L°Õ$7à %§ ¡ ¨UÕ 3ð!&-ñ0*1ó#á)0 Ü%Ÿ~™~¨eÓ4¸Ñ<ò"Ø)0ð ð#ð$(§9¡9¬V×-EÑ-EÀdÓ-KÖ#L˜Ü &× 3Ñ 3°GÓ <˜Ù$ Uœ|Ø$Ø ¨ Ò2Ø#ŸN™N¨5Ô1ð !ŸI™I×0Ñ0°ÈÐ0ÕMð$Mô" &›\�Fñ+2ÓL©' Q°Q¸d¿m¹mÒ5Kšq¨'�GÐLØ,2°1ªIÓ M©I q¸À*Ò9L¢¨IÑ M�F˜1‘Iä  ›_�Fä # F¨1¡I£× 9Ñ 9¸&Ó A�F˜1‘Iä # F¨1¡I£× 9Ñ 9¸&Ó A�F˜1‘Iñ)/ôá(.˜Hñ'/ÓK¡h ´f×6FÑ6FÀrÕ6Jš hÓKØ(.ðñð !ØØØØØØð �Hô/2°'¸8Ô.Dôá.D™N˜U Eô˜u u™}Õ-Ø.Dðòñ&,ôá%+˜Eñ?DÓD¹e¸œ×,Ñ,¨QÓ/Ò4°1Ñ4¸eÓDØ%+ðññ Ø×$Ñ$ T×%<Ñ%<Ó%>Õ?à×)Ñ)Ô+÷o;—ðr!ˆDŒMÜ—>‘> 6Ð*Ð *øô{—?‘?ò Ü×/Ñ/Ó1�Ø“ð üòr$PùòF#ùò6MùÚ MùòLùóùóùò Eùó÷_;Ð:ú—�úsÁ4W YÂ%4X9ÃX9Ã* YÃ=AX9Å X Å!X Å%D=X9Ê#C'X9Î )X9Î4 XÏA X9Ð ?X9ÑXÑ3XÑ7 X9Ò XÒ XÒAX9Ó$ X" Ó-XÔXÔ X" ÔX9Ô,X( Õ X9Õ X3 Õ X.Õ6X3 Õ;5X9Ö0Y×)XØXØ X9ØX" Ø" X9Ø.X3 Ø3X9Ø9Y Ø>YÙYcól•‡—t‰|�|g|¢­i|¤Ž}Gˆfd„d|j«Š‰|_|S)Ncó"•‡—eZdZˆˆfd„ZˆxZS)ú:reposetup..lfilesrepo.commitctx..lfilesctxcóF•—t‰|�}tj|||«Sr)rÚ markcommittedr )r!Únoderr#Ú lfilesctxs €€rr¢zHreposetup..lfilesrepo.commitctx..lfilesctx.markcommittedNs$ø€Ü  ¨DÑ?�DÜ!×/Ñ/°°d¸DÓAÐAr%)r&r'r(r¢r))r#r¤s@€rr¤r Msù„÷BñBr%r¤)rÚ commitctxr#)r!r=ÚargsÚkwargsr£r¤r#r>s @€€rr¥z'reposetup..lfilesrepo.commitctxJs>ù€Ü˜ TÑ4°SÐJ¸4ÒJÀ6ÑJˆDö B˜CŸM™Mô Bð &ˆCŒM؈Kr%c 󾕗|€i}t‰ |�}|j«5|jd} | ||«}||||||||¬«} | cddd«S#1swYyxYw)Néÿÿÿÿ)ÚtextÚuserÚdaterÚforceÚeditorÚextra)rÚcommitrYÚ_lfcommithooks) r!rªr«r¬rr­r®r¯rÚ lfcommithookr7r#r>s €€rr°z$reposetup..lfilesrepo.commitXsnø€ðˆ}Ø�ܘ TÑ1ˆDà—‘•Ø#×2Ñ2°2Ñ6� Ù$ T¨5Ó1�ÙØØØØØØ!Øô�ð÷—’ús  )AÁAcóÔ—g}g}g}|D]{}tj|dz«r#tjt d«|zd¬«‚|j j |«r|j|«Œk|j|«Œ}|D]×}d}|jj|«dz}|D]A} |jj| «j|«sŒ.|j|«d}n|sY|D]T} |jj| «j|«sŒ.|j| «|rŒB|jd«d}ŒV|rŒÇ|j|«ŒÙ||z }|S)aê Adjust matched file list If we pass a directory to commit whose only committable files are largefiles, the core commit code aborts before finding the largefiles. So we do the following: For directories that only have largefiles as matches, we explicitly add the largefiles to the match list and remove the directory. In other cases, we leave the match list unmodified. ó/s file "%s" is a largefile standins#commit the largefile itself instead)ÚhintFTr@) r rwrÚAbortrrrÚisdirrCrBÚ normalizeÚ startswith) r!rr•Ú actualfilesÚdirsÚregularsrÚ matcheddirÚdÚmfÚlfs rÚ _subdirlfsz(reposetup..lfilesrepo._subdirlfsvsZ€ðˆK؈D؈Hã�Ü×#Ñ# A¨¡HÔ-ÜŸ+™+ÜÐ=Ó>ÀÑBØCôðð —9‘9—?‘? 1Ô%Ø—K‘K •Nà—O‘O AÕ&ðó�Ø"� Ø—M‘M×+Ñ+¨AÓ.°Ñ5�ã"�BØ—}‘}×.Ñ.¨rÓ2×=Ñ=¸aÕ@Ø#×*Ñ*¨1Ô-Ø%)˜ Ùð #ñ "ó%˜ØŸ=™=×2Ñ2°2Ó6×AÑAÀ!ÕDØ'×.Ñ.¨rÔ2Ú#-ð !,× 2Ñ 2°4Ô 8Ø-1¡ ð%ò"Ø×&Ñ& qÕ)ð5ð: ˜8Ñ #ˆKØÐ r%)r@NNFFFF)r%NNNFFN) r&r'r(Ú_largefilesenabledr:r9rÚunfilteredmethodrUr¥r°rÁr))r#r>rœr�s@€€€rr>r&snù„à!Ðàˆõ , ðh × #Ñ #ðØØØØØØ÷c +ó $ðc +õJ ð ØØØØØØö ö<: r%r>c󕇗|j}|€|jj}|r]t«Šˆfd„}t j |j ||«tj‰|j |j‰«yy)z4Push largefiles for pushop before pushing revisions.Ncó&•—‰j|«Sr)Úadd)r—ÚlfhashÚtouploads €rr1z8reposetup..prepushoutgoinghook..Äsø€¨¯©°fÔ)=r%) ÚlfrevsÚoutgoingÚmissingrur Úgetlfilestouploadrœr Ú uploadlfilesÚremote)ÚpushoprÉÚaddfuncrÈr�s @€rÚprepushoutgoinghookz&reposetup..prepushoutgoinghook½sfù€à—‘ˆØ ˆ>Ø—_‘_×,Ñ,ˆFÙ Ü“uˆHÛ=ˆGÜ × $Ñ $ V§[¡[°&¸'Ô BÜ × #Ñ # B¨¯ © °V·]±]ÀHÕ Mð r%ó largefilescóv—|j«5d|jvr ddd«ytj}|jj «D]O}|j sŒ||jvsŒ|jjd«tj|«nddd«y#1swYyxYw)NrÒ) ÚlockÚ requirementsr ÚshortnameslashÚstoreÚ data_entriesÚ is_revlogÚ target_idrÆrÚwritereporequirements)r�rœr§ÚmarkerÚentrys rÚcheckrequireslfilesz&reposetup..checkrequireslfilesÊsŠ€Ø �Y‰Y�[Ø × 1Ñ 1Ñ1Ø÷ˆ[ô×*Ñ*ˆFØŸ™×0Ñ0Ö2�ð—?“? v°·±Ò'@Ø×%Ñ%×)Ñ)¨-Ô8Ü×1Ñ1°$Ô7Ùð 3÷ �[‰[ús‘B/ª9B/Á$B/Á33B/Â/B8shooksschangegroup.lfiless commit.lfiles) Úlocalr#r Úupdatestandinsbymatchr±rUÚ_lfstatuswritersÚprepushoutgoinghooksrÆÚ setconfig)r�rœrÑrÞr>s`` @rÚ reposetuprä s©ú€ð �:‰:Œ<Ø÷JðJ�T—^‘^ôJðX  €D„Nô"×7Ñ7Ð8€DÔð  ŸY™Y˜K€DÔô Nð ×Ñ×!Ñ! -Ð1DÔEò ð‡L�LØÐ'Ð)<¸môð‡L�L�Ð+Ð-@À-ÕPr%)Ú__doc__r^Úmercurial.i18nrÚ mercurialrrrrrWrr Úmercurial.dirstateutilsr Úr r rär/r%rÚrês+ðñ3ã å÷÷õ.÷ó zQr%