
    	^c;                         d dl mZ d dlmZmZmZmZmZm	Z
mZ d dlmZmZmZ d dlmZ ej        Zej        Z	 	 	 	 	 	 ddZd	 Zd
 ZdS )   )_)errorhg	localrepolockpycompatrequirementsscmutil)actionsauto_upgradeengine)
stringutilFNTc           
         |t                      }|                                }i }|||t          j        <   |||t          j        <   |||t          j        <   t          j        |           t          j	        |j
                  }	t          j        |j
        |	          }
|
                    t          j        |                     t          j        ||
           t          j        |          }g }|D ]:}|j        |v r/|                    |           |                    |j                   ;|rSt'          j        t+          d          d                    t/          |                    z  t+          d                    t          j        |          }t          j        ||||j        |
          }t          j        |          }t                      }t+          d          }t+          d          }d}t          j        }t          j        }t          j        }|rt9          |                                          r2|                                D ]\  }}|r|                    |           nJt          t          j                   }|                                D ]\  }}|s|                    |           |!                                rt                      }|                    |           |                    |           |                    |           d	 |D             }|"                    d
            |rXt+          d          }t+          d          }d                    d |D                       }||z  }t'          j        ||          t/          ||z   d           D ]}|j#        t          j$        k    r|j%        rs||vro||v r,||         s#|d|j        fz  }| &                    |           d}n*|d|j        fz  }| '                    |           | j(        sd}|                    |           |j)        rs||vro||v r,||         s#|d|j        fz  }| &                    |           d}n*|d|j        fz  }| '                    |           | j(        sd}|                    |           |j*        rs||vro||v r,||         s#|d|j        fz  }| &                    |           d}n*|d|j        fz  }| '                    |           | j(        sd}|                    |           |dk    r| &                    d           n|dk    r| '                    d           t          j+        | |
|j        ||||          } |sg }!g }"|D ]I}#|#,                    |          r|!                    |#           -|#j-        r|"                    |#           J|!s|"r|!rK| '                    t+          d                     |!D ]&}$| '                    d|$j        |$j.        fz             '|"rK| '                    t+          d                     |"D ]&}$| '                    d|$j        |$j.        fz             '| '                    d           n"| '                    t+          d                     | '                    t+          d                     | /                                 | 0                                 | 1                                 | 2                                 | j3        r6| '                    t+          d                     | 4                                 dS | j        s+| j5        s$| '                    t+          d                      dS | 6                    t+          d!                     | /                                 | 0                                 | 1                                 | 2                                 | '                    t+          d"                     |7                                5  |8                                5  | '                    t+          d#                     ts          j:        d$|j;        %          }%d}&	 | '                    t+          d&          |%z             |j
        <                    |j
                  }'t{          j>        |'|%d'          }(|(7                                5  |(8                                5  t          j?        | ||(|           }&ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   | '                    t+          d(          |%z             |j@        A                    |%d)           |&rN| j(        sG| &                    t+          d*          |&z             | &                    t+          d+                     | B                                 n# | '                    t+          d(          |%z             |j@        A                    |%d)           |&rN| j(        sG| &                    t+          d*          |&z             | &                    t+          d+                     | B                                 w xY w	 ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS ),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
    c                      g | ]}|j         	|S  )compatible_with_share.0as     3/usr/lib/python3/dist-packages/mercurial/upgrade.py
<listcomp>zupgraderepo.<locals>.<listcomp>u   s0     
 
 
Q-D

 
 
    c                     | j         S Nnamer   s    r   <lambda>zupgraderepo.<locals>.<lambda>x   s    !& r   )keys2   cannot use these actions on a share repository: %ss$   upgrade the main repository directlyc              3   $   K   | ]}|j         V  d S r   r   r   s     r   	<genexpr>zupgraderepo.<locals>.<genexpr>|   s$       @ @A @ @ @ @ @ @r   c                     | j         S r   r   r    s    r   r!   zupgraderepo.<locals>.<lambda>   s    QV r   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
)C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sorttypeFORMAT_VARIANTtouches_filelogswarnstatusquiettouches_manifeststouches_changelog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))r6   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_actionsmhr   actionmsg
upgrade_oprT   onlydefaultditmppath
backuppathrepouidstrepos)                                            r   upgraderepor   "   s    55??D>G.:;=E.9:=E.9: -d3331$'::O+DG_EEGNN?8>>???.tW=== '8>> M % %6X  ###QV$$$ 
k:;;jj))**+FGG
 
 
 	
 &:4@@O :o}d.? J &<TBBO eeOMNNMJKKJJ		(B		(B		)B 
0 ''))** 		006688 , ,G ,#''+++, "."DEEO06688 0 0G 0#++B///{{}} )j)))o...m,,,
 
%
 
 
 	 0 0111 	)GHHA9::Ajj @ @ @ @ @@@GLA+aa((((o5;K;KLLL *$ *$;/888" 	$r'@'@&&&(, #'+;V[*IICGGCLLL!"J OV[#AA		#x #!"J#### 	$/(A(A&&&(, #'+;V[*IICGGCLLL!"J $7#EE		#x #!"J#### 	$/(A(A&&&(, &'+<fk*JJCGGCLLL!%J L&+#>>		#x #!"J###Q
	q
		5 1
 J  8
  	& 	&A||D!! &!!!$$$$ &""1%%% 	Q 	Q J		7    $ J JAII.!&!-1HHIIII J		/    % J JAII.!&!-1HHIIIIIIeIIaNOOPPP
		  	
 	
 	
 	%%'''&&(((((***))+++* 	4II0    11333& **D 
		!&''(((HHQABBCCC!!###""$$$$$&&&%%'''IIa)**+++	 +0 +0tyy{{ +0 +0
		!899::: "+49EEE
"	0II"  	   W&&tw//FmFFFFG  ',,..  +3gz 
                              IIa=>>HIIIHOOGdO333 
"( 
ABBZO   4    --//// IIa=>>HIIIHOOGdO333 
"( 
ABBZO   4    --/////W+0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0s   kA j>A/hed?	3e?eeee
heheh!B&j>B'j..j>2k>k	kk	kkkc                 6   d}t          j        |d          }|                                }	||z
  }
|
                    t          j                   |                    t          j                   |dk    rdS 	 t          j        | |ddd          }t          j        |d          }||	k    rR||z
  }||z  }||z  }||z
  }
|
                    t          j                   |                    t          j                   t          j	        ||
           |r"| 
                    t          d                     n# t          j        $ r}t          d          }|d	k    r=t          j        t          d
          t          j        |j                  z  |          |r>| 
                    t          d          t          j        |j                  z  |           Y d}~nd}~ww xY w|r|                                 dS dS # |r|                                 w w xY w)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copyrG   requirementsmodSHARESAFE_REQUIREMENTlockmodtrylockr
   writerequiresrN   r   r   	LockErrorr>   r   forcebytestrstrerrorrelease)r6   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"05AA16688 (*<<L_:;;;_BCCC (""$E8Q:: (5eTBB"888*-@@G !G+  $77 /2DDL_BCCC $$_%JKKKe\222# 	HGGAEFFGGG?   N
 
 ...+;<<)!*556   
  	GG=>>)!*556    "  	MMOOOOO	 	5 	MMOOOO	s2   8B>D7 6G? 7G"BGG? G""G? ?Hc                    d}t          j        |d          }|                                }	|t          j        z  }||z  }|                    t          j                   |dk    rdS 	 t          j        | |ddd          }t          j        |d          }
|
|	k    r0||
z
  }||z  }||
z  }||z  }|t          t          j                  z  }t          j        ||           |r"|                     t          d                     n# t          j        $ r}t          d          }|dk    r=t          j        t          d	          t#          j        |j                  z  |
          |r>|                     t          d          t#          j        |j                  z  |
           Y d}~nd}~ww xY w|r|                                 dS dS # |r|                                 w w xY w)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
   r   rN   r   r   r   r>   r   r   r   r   )r6   r   	sharedvfsr   r   r   r   r_   source_requirementsr   r   r   r   r   s                 r   downgrade_share_to_non_safer   l  s=    E#1)TBB16688 ?CC// EFFF(""$E8Q:: (5eTBB"888*-@@G !G+  $77  $77  C(M$N$NN e%9:::# 	NGGAKLLMMM?   N
 

 000+=>>)!*556   
  	GG?@@)!*556    &  	MMOOOOO	 	5 	MMOOOO	s2   (BD G F0BF+&G +F00G G&)FNTNNN)i18nr    r   r   r   r   r   r   r	   r   r
   upgrade_utilsr   r3   r   r   r/   utilsr   may_auto_upgradeallformatvariantr   r   r   r   r   r   <module>r      s-                                         0 "3  	H0 H0 H0 H0V< < <~: : : : :r   