
    6h$;                        S SK Jr  SSKJr  SSKJrJrJrJr	J
r
JrJr  SSKJrJrJr  SSKJr  \R,                  r\R.                  r      SS jrS	 rS
 rg)    )annotations   )_)errorhg	localrepolockpycompatrequirementsscmutil)actionsauto_upgradeengine)
stringutilNc           
     *   Uc
  [        5       nUR                  5       n0 nUb  Xh[        R                  '   Ub  XX[        R                  '   Ub  Xx[        R
                  '   [        R                  " U5        [        R                  " UR                  5      n	[        R                  " UR                  U	5      n
U
R                  [        R                  " U5      5        [        R                  " X5        [        R                  " U5      n/ nU HA  nUR                   U;   d  M  UR#                  U5        UR%                  UR                   5        MC     U(       aB  [&        R(                  " [+        S5      SR-                  [/        U5      5      -  [+        S5      S9e[        R0                  " U5      n[        R2                  " XXR4                  U
5      n[        R6                  " U5      n[        5       n[+        S5      n[+        S5      nSn[        R
                  n[        R                  n[        R                  nU(       a  [9        UR;                  5       5      (       a5  UR=                  5        H   u  nnU(       d  M  UR?                  U5        M"     OM[        [        R@                  5      nUR=                  5        H   u  nnU(       a  M  UR%                  U5        M"     URC                  5       (       a  [        5       nUR                  U5        UR                  U5        UR                  U5        U Vs/ s H  nURD                  (       a  M  UPM     nnURG                  S	 S
9  U(       aH  [+        S5      n[+        S5      nSR-                  S U 5       5      nUU-  n[&        R(                  " UUS9e[/        UU-   S S
9 GH  nURH                  [        RJ                  :w  a  M$  URL                  (       a  UU;  a{  UU;   a/  UU   (       d$  USUR                   4-  n U RO                  U 5        SnO5USUR                   4-  n U RQ                  U 5        U RR                  (       d  SnUR?                  U5        URT                  (       a  UU;  a{  UU;   a/  UU   (       d$  USUR                   4-  n U RO                  U 5        SnO5USUR                   4-  n U RQ                  U 5        U RR                  (       d  SnUR?                  U5        URV                  (       d  GM\  UU;  d  GMe  UU;   a/  UU   (       d$  USUR                   4-  n U RO                  U 5        SnO5USUR                   4-  n U RQ                  U 5        U RR                  (       d  SnUR?                  U5        GM     US:  a  U RY                  S5        OUS:  a  U R[                  S5        [        R\                  " U U
UR4                  UUUU5      n!U(       Gd  / n"/ n#U HP  n$U$R_                  U5      (       a  U"R#                  U$5        M,  U$R`                  (       d  M?  U#R#                  U$5        MR     U"(       d  U#(       a  U"(       aM  U RQ                  [+        S5      5        U" H-  n%U RQ                  SU%R                   U%Rb                  4-  5        M/     U#(       aM  U RQ                  [+        S5      5        U# H-  n%U RQ                  SU%R                   U%Rb                  4-  5        M/     U RQ                  S5        OU RQ                  [+        S5      5        U RQ                  [+        S5      5        U!Re                  5         U!Rg                  5         U!Ri                  5         U!Rk                  5         U!Rl                  (       a*  U RQ                  [+        S5      5        U!Ro                  5         gU!R                  (       d,  U!Rp                  (       d  U RQ                  [+        S5      5        gU Rs                  [+        S 5      5        U!Re                  5         U!Rg                  5         U!Ri                  5         U!Rk                  5         U RQ                  [+        S!5      5        URu                  5          URw                  5          U RQ                  [+        S"5      5        [x        Rz                  " S#UR|                  S$9n&Sn' U RQ                  [+        S%5      U&-  5        UR                  R                  UR                  5      n([        R                  " U(U&SS&9n)U)Ru                  5          U)Rw                  5          [        R                  " XU)U!5      n'SSS5        SSS5        U RQ                  [+        S'5      U&-  5        UR                  R                  U&SS(9  U'(       aH  U RR                  (       d7  U RO                  [+        S)5      U'-  5        U RO                  [+        S*5      5        U!R                  5          SSS5        SSS5        gs  snf ! , (       d  f       N= f! , (       d  f       N= f! U RQ                  [+        S'5      U&-  5        UR                  R                  U&SS(9  U'(       aH  U RR                  (       d7  U RO                  [+        S)5      U'-  5        U RO                  [+        S*5      5        U!R                  5         f = f! , (       d  f       N= f! , (       d  f       g= f)+zUpgrade a repository in place.Ns)   unknown optimization action requested: %ss   , s0   run without arguments to see valid optimizationshints3   warning: ignoring %14s, as upgrade is changing: %s
s3   note:    selecting %s for processing to change: %s
r   c                    U R                   $ Nnameas    3/usr/lib/python3/dist-packages/mercurial/upgrade.py<lambda>upgraderepo.<locals>.<lambda>y   s    !&&    )keys2   cannot use these actions on a share repository: %ss$   upgrade the main repository directlyc              3  8   #    U  H  oR                   v   M     g 7fr   r   ).0r   s     r   	<genexpr>upgraderepo.<locals>.<genexpr>}   s      @As   c                    U R                   $ r   r   r   s    r   r   r      s    QVVr   s   --no-filelogs   s   all-filelogsr   s   --no-manifests   all-manifestlogss   --no-changelogTs	   changelog   
sB   repository lacks features recommended by current config options:

s
   %s
   %s

s?   repository lacks features used by the default config options:

s2   (no format upgrades found in existing repository)
sE   performing an upgrade with "--run" will make the following changes:

sK   additional optimizations are available by specifying "--optimize <name>":

s   nothing to do
s-   upgrade will perform the following actions:

s   beginning upgrade...
s    repository locked and read-only
s   upgrade.)prefixdirs9   creating temporary repository to stage upgraded data: %s
)pathcreates!   removing temporary repository %s
)forciblys'   copy of old repository backed up at %s
sq   the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified
)Fset
unfilteredupgrade_engineUPGRADE_CHANGELOGUPGRADE_MANIFESTUPGRADE_FILELOGSupgrade_actionscheck_source_requirementsr   defaultcreateoptsuinewreporequirementsupdatepreservedrequirementscheck_requirements_changesfindoptimizationsr   appenddiscardr   Abortr   joinsortedfind_format_upgradesdetermine_upgrade_actionsr   find_format_downgradesanyvaluesitemsaddUPGRADE_ALL_REVLOGSsharedcompatible_with_sharesorttypeFORMAT_VARIANTtouches_filelogswarnstatusquiettouches_manifeststouches_changelog
warnnoi18nstatusnoi18nUpgradeOperation
fromconfigdefaultdescriptionprint_requirementsprint_optimisationsprint_upgrade_actionsprint_affected_revlogsunused_optimizationsprint_unused_optimizationsremoved_actionswritewlockr	   r
   mkdtempr(   	__class__r   
repositoryupgradevfsrmtreeprint_post_op_messages)*r4   reporunoptimizebackupmanifest	changelogfilelogsspecified_revlogsdefault_optionsnewreqsalloptimizationsoptimizationsoformat_upgrades
up_actionsr^   touched_revlogsoverwrite_msg
select_msg
msg_issuedFLMNCLrlenabledunsafe_actionsr   mhr   actionmsg
upgrade_oprU   onlydefaultditmppath
backuppathrepouidstrepos*                                             r   upgraderepor   #   s    5??D>G.::;=E.99:=E.99: --d311$'':O++DGG_EGNN?88>?..t= '88> M66X  #QVV$ 
 kk:;jj)*+FG
 	
 &::4@O ::}.?.?J &<<TBO eOMNMJKJJ		(	(B		(	(B		)	)B '')**0668G7#''+  9 "."D"DEO0668Gw#++B/  9 {{}}j)o.m,%
%!Q-D-DA~ 	 
 	 01GHA9:Ajj @ @@GLA++aa((o5;KL;;/888""r'@&&(,'+;V[[*IICGGCL!"J OV[[#AA		#xx!"J###/(A&&(,'+;V[[*IICGGCL!"J $7#EE		#xx!"J####/(A&&(,'+<fkk*JJCGGCL!%J L&++#>>		#xx!"J#U MV Q
e	q
 11
J 
 A||D!!!!!$""1%	 ! 		7 $AII.!&&!--1HHI $ 		/ %AII.!&&!--1HHI % IIeIIaNOP
		 	
 	%%'&&(((*))+**II0 113&&**D*D
		!&'(HHQABC!!#""$$$&%%'IIa)*+	tyy{
		!89: ""+499E
"	0II" 	 WW&&tww/FmmFFG',,.+33gz
 #1 IIa=>HIHHOOGdO3"((ABZO 4 --/W #S
~ #1. IIa=>HIHHOOGdO3"((ABZO 4 --/W #{s{   6h1h1l*<k3'A(ii h6	9ii	Bk3 l6
i i
iiBk00k33
l	=l
lc                ,   Sn[         R                  " US5      nUR                  5       n	X8-
  n
U
R                  [        R
                  5        UR                  [        R
                  5        US:X  a  g [        R                  " XSSS5      n[         R                  " US5      nX:w  aN  X;-
  nX<-  nX;-  nX8-
  n
U
R                  [        R
                  5        UR                  [        R
                  5        [         R                  " X5        U(       a  U R                  [        S5      5        U(       a  UR#                  5         gg! [        R                   a  n[        S5      nUS	:X  a?  [        R                  " [        S
5      [        R                  " UR                   5      -  US9eU(       a:  U R                  [        S5      [        R                  " UR                   5      -  US9   SnANSnAff = f! U(       a  UR#                  5         f f = f)z,Upgrades a share to use share-safe mechanismNF   allow   wlockr   Ts+   repository upgraded to use share-safe mode
?   see `hg help config.format.use-share-safe` for more informations   upgrade-aborts&   failed to upgrade share, got error: %sr   s'   failed to upgrade share, got error: %s
)r   readrequirescopyrE   requirementsmodSHARESAFE_REQUIREMENTlockmodtrylockwriterequiresrM   r   r   	LockErrorr<   r   forcebytestrstrerrorrelease)r4   hgvfsstorevfscurrent_requirementsmismatch_configmismatch_warnmismatch_verbose_upgrader`   store_requirementsoriginal_crequirementsdiffrequireslocked_requirementsremoveder   s                  r   upgrade_share_to_safer   -  s    E --h>1668 (<L_::;_BBC ("$8Q: &225$?8*@G !+  7 /DL_BBC $$_%J%JKe2#GGAEFG$ MMO # ?? N
 ..++;<))!**56 
 GG=>))!**56  " MMO s,   4B:E G6BG1,G9 1G66G9 9Hc                   Sn[         R                  " US5      nUR                  5       n	U[        R                  -  nX8-  nUR                  [        R                  5        US:X  a  g [        R                  " XSSS5      n[         R                  " US5      n
X:w  a,  X:-
  nX;-  nX:-  nX8-  nU[        [        R                  5      -  n[         R                  " X5        U(       a  U R                  [        S5      5        U(       a  UR'                  5         gg! [        R                   a  n[        S5      nUS:X  a?  [        R                  " [        S	5      [         R"                  " UR$                  5      -  US
9eU(       a:  U R                  [        S5      [         R"                  " UR$                  5      -  US
9   SnANSnAff = f! U(       a  UR'                  5         f f = f)z5Downgrades a share which use share-safe to not use itNTr   r   r   s1   repository downgraded to not use share-safe mode
r   s   downgrade-aborts(   failed to downgrade share, got error: %sr   s)   failed to downgrade share, got error: %s
)r   r   r   r   WORKING_DIR_REQUIREMENTSremover   r   r   r+   r   rM   r   r   r   r<   r   r   r   r   )r4   r   	sharedvfsr   r   r   r   r`   source_requirementsr   r   r   r   r   s                 r   downgrade_share_to_non_safer   l  s    E!..y$?1668 ?CCC/ E EF("$8Q: &225$?8*@G !+  7  7  C(M(M$NN e:#GGAKLM( MMO ' ?? N

 00++=>))!**56 
 GG?@))!**56  & MMO s,   (BD G-BG>G GG G%)FNTNNN)
__future__r   i18nr    r   r   r   r	   r   r
   r   r   r   upgrade_utilsr   r1   r   r   r-   utilsr   may_auto_upgradeallformatvariantr   r   r    r   r   <module>r      sk    #      00 "33  	G0T<~:r   