6hQSrSSKJr SSKrSSKrSSKJr SSKJrJ r J r J r SSK J r Jr 0r\ R "\5rSr\"S/\"S 5\R$S 9SS j5rS rS rSrg)z-recreates hardlinks between repository clones) annotationsN)_)errorhg registrarutil) stringutilurlutilsships-with-hg-corerelinks[ORIGIN]) helpcategoryc [[S5(a[[S5(d[R"[ S55eUcSUR ;aSn[ R"SX5n[R"URUR5nUR[ S5URRURR4-5 URUR:XaUR[ S55 g[R "URRURR5(d[R"[ S 55eUR#5 UR#5 [%['XP55n[)XeRRURRU5n[+URRURRXp5 SSS5 SSS5 g!,(df  N=f!,(df  g=f) aorecreate hardlinks between two repositories When repositories are cloned locally, their data files will be hardlinked so that they only use the space of a single repository. Unfortunately, subsequent pulls into either repository will break hardlinks for any files touched by the new changesets, even if both repositories end up pulling the same changes. Similarly, passing --rev to "hg clone" will fail to use any hardlinks, falling back to a complete copy of the source repository. This command lets you recreate those hardlinks and reclaim that wasted space. This repository will be relinked to share space with ORIGIN, which must be on the same local disk. If ORIGIN is omitted, looks for "default-relink", then "default", in [paths]. Do not attempt any read operations on this repository while the command is running. (Both repositories will be locked against writes.) samefile samedevices*hardlinks are not supported on this systemNsdefault-relinkr srelinking %s to %s sthere is nothing to relink /source and destination are on different devices)hasattrrrAbortrpathsr get_unique_pull_path_objr repositorybaseuilocstatusstorepathrootrlocksortedcollectprune do_relink)uirepooriginoptsrsrc candidatestargetss ./usr/lib/python3/dist-packages/hgext/relink.pyrelinkr)$sf8 4 $ $GD,,G,Gkk!IJKK ~+rxx7"  + +Ir BD -- TXX .CIIa'(CIINNDJJOO+LLM yyCHH !345 ??399>>4::?? ; ;kk!NOPP chhjGC,-  IINNDJJOORH#))..$**//7?!jjs%I!A?H1 I1 H? ;I Ic[[RR5n/n[USR 55nUS-S-nUR RnUR [S5[S5US9nSnUR[S5XE4-5 [R"U5Hupn U R5 U[U5U-Sn [U 5Hn U S SS ;aM[R"[RRX55n [R"U R5(dMhUS - nUR![RRX5U 45 UR#X|S 9 M M UR%5 UR[S 5[U5-5 U$)Nstips collectingfilesunittotalrs6tip has %d files, estimated total number of files: %d )s.ds.iitems%collected %d candidate storage files )lenosrsepmanifestr makeprogressrrwalksortrstatjoinS_ISREGst_modeappendupdatecomplete)r%r!seplenr&liver0progressposdirpathdirnames filenamesrelpathfilenamests r(rrVs|  FJ s6{##% &D 1HME ))..Cq/akOH CII DE - )+ $9 #c(V+-.y)H}N2g89B<< ++ 1HC   rww||G>C D OOCO /*)5 IIa9:S_LM cSn/nUR[S5[S5[U5S9nSnUHupUS- n[RR X5n [RR X(5n U"XU 5n U (dUR SU-5 MnURXR45 URXxS9 M UR5 UR[S 5[U5-5 U$) Nc6[R"U5n[R"X5(ag[R "X5(d[ R"[S55eURUR:wagU$![a gf=f)NFr) r6r<OSErrorrrrrrrst_size)r%dstrLtss r( linkfilterprune..linkfilter{s B == " "s((++DE  :: #   sB BBspruningr-r.rr2not linkable: %s r3s,pruned down to %d probably relinkable files ) r9rr5r6rr=debugr@rQrArBr) r&r%rRr!rTr'rErFfnrLsrcpathtgtrSs r(rrzs"G * AhKs:H C q'',,s'ggll3# b ) HH*R/ 0 JJ'(% II :;c'lJ NrMc SnSnSnSnUR[S5[S5[U5S9nSn UGH upU S- n [RR X 5n [RR X5n [ U S5n[ U S5nURU5nU(a2URU5nUU:waOURU5nU(aM2U(a'URS U -5 SSS5 SSS5 MSSS5 SSS5 U"X5 URXS 9 US- nX{- nGM UR5 UR[S 5U[ R""U54-5 g!,(df  N=f!,(df  N=f![a6nURS U [R"U54-5 SnAGMSnAff=f) NcUS-n[R"X5 [R"X5 [R "U5 g![a [R"X!5 ef=f)Ns.bak)r6renameroslinkrPremove)r%rRbaks r( relinkfiledo_relink..relinkfilesUGm #  KK ! #  IIc   s A "A,irs relinkingr-r.r2rbrVr3s%s: %s s!relinked %d files (%s reclaimed) )r9rr5r6rr=openreadrWrArPwarnr forcebytestrrBrr bytecount)r%rRfilesr!raCHUNKLENrelinked savedbytesrErFfszsourcerZsfpdfpsindininsts r(r r sHHJ ,akUH C qc%ggll3" &$ 3S$3((8$Chhx(#:hhx( # .23)8  )8  H v # OOCO ( MH  J)0 II /0 T^^J/ 0 1+)8    H GGK3 (?(?(E"FF G G HsI F!A F'FF!F!' F2 F F!! F/ 2 G2<*G--G2)N)__doc__ __future__rr6r<mercurial.i18nr mercurialrrrrmercurial.utilsr r cmdtablecommand testedwithCATEGORY_MAINTENANCEr)rrr rMr(rs4"      H % #   r1[>0L0L,@,@^!H&R0rM