403Webshell
Server IP : 74.208.236.52  /  Your IP : 216.73.217.98
Web Server : Apache
System : Linux infong527 4.4.400-icpu-115 #2 SMP Mon Jul 6 08:15:05 UTC 2026 x86_64
User : u44043973 ( 5404757)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/mercurial/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/mercurial/__pycache__/filemerge.cpython-313.pyc
�

6�hV���T�SSKJr SSKrSSKrSSKrSSKrSSKJr SSKJ	r	J
r
 SSKJrJ
r
JrJrJrJrJrJrJrJrJrJrJr SSKJrJr SrS	rS
r0r0r \RB"5r"\"RFr#\"RHr$\"RJr%\"S5r&\"S5r'"S
S5r(Sr)Sr*Sr+Sr,Sr-Sr.\""S\#5S5r/\""S\#5S5r0\""S\#5S5r1\""S\#5S5r2Sr3Sr4Sr5S r6S!r7\""S"\%\"S#5\6S$9S%5r8\""S&\%\"S#5\6S$9S'5r9\""S(\%\"S#5\6S$9S)5r:\""S*\%\"S#5\6S$9S+5r;\""S,\%S-\6S$9S.5r<\""S/\%\"S#5\6S$9S05r=\""S1\$\6S$9S25r>\""S3\$\6S$9S45r?\""S5\$\"S655S75r@\""S8\%S9S9S:9S;5rA\""S<\$S9S9S:9S=5rBS>rCS?rDS@rESArFSNSBjrGSCrHSDrI\R�SE5rKSNSFjrLSGrMSHrNSIrOSJrPSKrQSLrRSMrS\S"SS\"5 \R�5rUg)O�)�annotationsN�)�_)�hex�short)
�encoding�error�	formatter�match�pycompat�	registrar�scmutil�simplemerge�tagmerge�
templatekw�	templater�templateutil�util)�procutil�
stringutilc�6�UR"SUS-U-/UQ76$�N�merge-tools�.)�config��ui�tool�part�argss    �5/usr/lib/python3/dist-packages/mercurial/filemerge.py�_toolstrr"+s!��
�9�9�^�T�D�[�4�%7�?�$�?�?�c�6�UR"SUS-U-/UQ76$r)�
configboolrs    r!�	_toolboolr&/s!��
�=�=�����t�);�C�d�C�Cr#c�2�URSUS-U-5$r)�
configlist)rrrs   r!�	_toollistr)3s��
�=�=�����t�);�<�<r#s�file '%(fd)s' was deleted in other%(o)s but was modified in local%(l)s.
You can use (c)hanged version, (d)elete, or leave (u)nresolved.
What do you want to do?$$ &Changed $$ &Delete $$ &Unresolveds�file '%(fd)s' was deleted in local%(l)s but was modified in other%(o)s.
You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
What do you want to do?$$ &Changed $$ &Deleted $$ &Unresolvedc�^�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�
absentfilectx�Uz�Represents a file that's ostensibly in a context but is actually not
present in it.

This is here because it's very specific to the filemerge code for now --
other code is likely going to break with the values this returns.c��XlX lg�N��_ctx�_f)�self�ctx�fs   r!�__init__�absentfilectx.__init__\s���	��r#c�8�SURUR4-$)Nsabsent file %s@%s)r1r0�r2s r!�	__bytes__�absentfilectx.__bytes__`s��#�t�w�w��	�	�&:�:�:r#c��UR$r.)r1r8s r!�path�absentfilectx.pathcs���w�w�r#c��gr.�r8s r!�size�absentfilectx.sizef���r#c��gr.r?r8s r!�data�absentfilectx.datairBr#c�J�URR5R$r.)r0�repo�nullidr8s r!�filenode�absentfilectx.filenodels���y�y�~�~��&�&�&r#Tc���UR5=(aI UR5UR5:H=(a! UR5UR5:H(+$)zFcompare with other file context

returns True if different from fctx.
��isabsent�	changectxr<)r2�fctxs  r!�cmp�absentfilectx.cmpqsK��
�M�M�O�
+���� �D�N�N�$4�4�
+��	�	��t�y�y�{�*�
�	
r#c��g)Nr#r?r8s r!�flags�absentfilectx.flags|s��r#c��UR$r.)r0r8s r!rN�absentfilectx.changectxs���y�y�r#c��g�NFr?r8s r!�isbinary�absentfilectx.isbinary�s��r#c��g)NTr?r8s r!rM�absentfilectx.isabsent�rBr#r/N)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r5r9r<r@rDrI�
_customcmprPrSrNrYrM�__static_attributes__r?r#r!r+r+UsF��I��;����'��J�	
����r#r+c�z�U[;aU$[XSU5nURS5(aU$[X5$)N�
executable�python:)�	internalsr"�
startswith�findexternaltool)rr�cmds   r!�	_findtoolrk�s<���y����
�2�]�D�
1�C�
�~�~�j�!�!��
��B�%�%r#c�^�URS5(aU$[R"U5$)Nrf)rhr�
shellquote)rjs r!�_quotetoolpathrn�s'��
�~�~�j�!�!��
����s�#�#r#c	�\�SHpn[XU5nU(dM[R"U[XS55nU(dMB[R"U[XS5-5nU(dMnUs $ [XSU5n[R"[R
"U55$)N)sregkeys	regkeyaltsregnames	regappendre)r"r�	lookupregr�findexe�
expandpath)rr�kn�k�p�exes      r!riri�s���'���R�r�"�����N�N�1�h�r��<�=���1�� � ��X�b��%E�!E�F�A��q���(��2�]�D�
1�C����D�O�O�C�0�1�1r#c�^^^^�TRSS5mSU4SjjmSmUUUU4SjnTRSS5nU(a8[TU5nU(aT"U5(dgU(a
U[U54$Xw4$[R
R
S	5n	U	(aU(aT"U	5(dgX�4$U=(a Tn
TRS
5H�up�[R"URSU/5n
U
"U5(dM7U"X�XJU5(dMHU(aTT"USS
S9(dGTR[S5[R"U5[R"U54-5 [TU5nU[U54s $ 0n[5nTRS5H^unnURS5SnUU;a[![#TUS55UU'[%TUS5(dMMUR'U5 M` UR)5n[+UR-5VVs/sHunnX�;dM
U*U4PM snn5nTRSS5nU(a4U"UX$X55(a%UU;aU(dUU4$UR/SSU45 UR1S5 UH1unnU"USXCU5(dM[TU5nU[U54s $ U(dU(dU(a5U(d-[3U5(aTR[S5U-5 ggs snnf)N�mergesstrict-capability-checkc�>�U[;a+U=(a" [URRU5$[TX5$r.)rg�capabilities�getr&)r�
capability�strictrs   �r!�
hascapability� _picktool.<locals>.hascapability�s8����9���J�i��o�:�:�>�>�z�J�J���T�.�.r#c�V�U[;=(a [UR[:H$r.)rg�	mergetype�nomerge�rs r!�
supportscd�_picktool.<locals>.supportscd�s!���y� �I�Y�t�_�%>�%>�'�%I�Ir#c�p>�UnU(a[S5X4-n[T	U5(dDU(aT	R[S5U-5 g
T	R[S5U-5 g
U(a-T"UST5(dT	R[S5U-5 g
U(a-T"UST5(dT	R[S5U-5 g
U(aT"U5(dg
[R
"5(d0[
T	US5(aT	R[S5U-5 g
g	)Ns%s (for pattern %s)scouldn't find merge tool %s
ssymlinkstool %s can't handle symlinks
�binarystool %s can't handle binary
�guistool %s requires a GUI
TF)rrk�warn�noter�guir&)
r�pat�symlink�binary�changedelete�tmsgr~�strictcheckr�rs
      ����r!�check�_picktool.<locals>.check�s�������+�,��{�:�D���T�"�"������:�;�d�B�C������:�;�d�B�C���]�4��[�I�I��G�G�A�8�9�D�@�A���M�$�	�;�G�G��G�G�A�6�7�$�>�?���*�T�"2�"2�
�
�	�����I�b�$��$?�$?��G�G�A�1�2�T�9�:��r#�uis
forcemerge)s:promptNsHGMERGEsmerge-patternsr#r�T)r}s�warning: check merge-patterns configurations, if %r for binary file %r is unintentional
(see 'hg help merge-tools' for binary files capability)
rrrsprioritysdisabled)Nshgmergesno tool found to merge %s
)s:mergeN)F)r%rrkrnr�environr{�configitemsr�rootr�rr�bytestr�set�split�intr"r&�add�keys�sorted�items�insert�append�len)rGrr<r�r�r�r��force�toolpath�hgmerge�	binarycapr�r�mf�tools�disabledrt�v�t�namesru�uimerger~r�r�s `                    @@@r!�	_picktoolr��s�����-�-��*D�E�K�/�
J���2
�I�I�e�]�+�E���R��'���
�8� 4� 4�#���~�h�7�8�8��~�%����"�"�:�.�G���
�7� 3� 3�#��%�%�
�&�;�I��^�^�$5�6�	��
�[�[����C�#��
/��
�d�8�8��d��\�J�J��m�D�)�D�I�����;�� �'�'��-�x�/?�/?��/E�F�
G��!��T�*�H��.��2�3�3�7�"
�E��u�H����~�.���1�
�G�G�D�M�!����E�>��8�B��;�7�8�E�!�H��R��K�(�(��L�L��O�/�
�J�J�L�E��#(�;�;�=�I�=���a�D�4H��1�"�d��=�I�
�E��i�i��x�(�G����$��>�>��e�#�L���)�)��L�L��T�7�O�,�	�L�L�#�$����1���D�'�<�8�8� ��Q�'�H��~�h�/�0�0���&�L���E�
�
��G�G�A�4�5��<�=����-	Js�=L>
�
	L>
c�<�SU;agSU;agSU;agSU;agg)zGuess the EOL type of a file�Ns
�
�
r?�rDs r!�_eoltyper�s-����}���$�����}����}��r#c���[UR55nU(aW[R"U5n[U5nU(a.UR	XB5nXS:wa[R
"X5 gggg)z/Convert EOL markers in a file to match origfileN)r�rDr�readfile�replace�	writefile)�file�backup�tostylerD�style�newdatas      r!�	_matcheolr�$s]���v�{�{�}�%�G���}�}�T�"��������l�l�5�2�G������t�-���r#�promptc	��URnURR5n[R"U5nURR5R
5(a[R"S5e[URUR/5n	U"U5U	S'URR5(a!UR[U	-S5n
/SQU
nOeURR5(a!UR[U	-S5n
/SQU
nO%UR[S5U	-S5n
/SQU
nUS:Xa
[!XX#XE5$US:Xa
[#XX#XE5$US	:Xa
[%XX#XE5$g![R&a! UR)S
5 [%XX#XE5s$f=f)zbAsks the user which of the local `p1()` or the other `p2()` version to
keep as the merged version.s/in-memory merge does not support file conflictssfd�)�local�other�
unresolved)r�r�r�s�file '%(fd)s' needs to be resolved.
You can keep (l)ocal%(l)s, take (o)ther%(o)s, or leave (u)nresolved.
What do you want to do?$$ &Local $$ &Other $$ &Unresolvedr�r�r�r�N)rrOr<r�getuipathfnrN�
isinmemoryr	�InMemoryMergeConflictsError�
partextras�labelrM�promptchoice�_localchangedotherdeletedmsg�_otherchangedlocaldeletedmsgr�_iother�_ilocal�_ifail�ResponseExpected�write)rG�mynode�local�other�base�toolconfr�fd�uipathfn�prompts�index�choices            r!�_ipromptr�0s���
���B�	�����	�B��"�"�4�(�H�
�z�z����(�(�*�*��/�/�>�
�	
��%�+�+�u�{�{�3�4�G��b�\�G�E�N� B��:�:��� � ��O�O�$@�7�$J�A�N�E�8��?�F�
�Z�Z�
 �
 �
"�
"��O�O�$@�7�$J�A�N�E�8��?�F�
�O�O��:�����
�E�9��?�F��X���4��t�F�F�
�x�
��4��t�F�F�
�}�
$��$��d�E�E�%���!�!�B�
������d�E�$�A�A�B�s�-B7F�%F�8F�2G�Gr�c�:�SURR54$)z=Uses the local `p1()` version of files as the merged version.r)rOrM�rGr�r�r�r�r�s      r!r�r�ds��
�e�j�j�!�!�#�#�#r#r�c�H�URR5(a)[UR5R5 SnSU4$[UR5R	URR5URR
55 SnSU4$)z=Uses the other `p2()` version of files as the merged version.TFr)rOrM�_underlyingfctxifabsent�remover�rDrS)rGr�r�r�r�r��deleteds       r!r�r�js���
�z�z�������
�
�+�2�2�4���
�g�:��		 ��
�
�+�1�1��J�J�O�O��u�z�z�/�/�1�	
����g�:�r#sfailc���URR5(aU[UR5RURR	5URR55 g)z�
Rather than attempting to merge files that were modified on both
branches, it marks them as unresolved. The resolve command must be
used to resolve these conflicts.�rF)rOrMr�r�rDrSr�s      r!r�r�ysP��
�z�z�������
�
�+�1�1��J�J�O�O��u�z�z�/�/�1�	
�r#c�r�UR5(a!UR5UR5$U$)z�Sometimes when resolving, our fcd is actually an absentfilectx, but
we want to write to it (to do the resolve). This helper returns the
underyling workingfilectx in that case.
rL)�filectxs r!r�r��s2��
������ � �"�7�<�<�>�2�2��r#c��[R"UR55(aY[S5URR5-nUR
[S5U-5 [R"U5eg)z verifies that text is non-binarys%s looks like a binary file.swarning: %s
N)	rr��textrrOr<r�r	�Abort)�inputr�msgs   r!�_verifytextr��s_���������&�&��/�0�5�:�:�?�?�3D�D��
����"�#�c�)�*��k�k�#���'r#c�F�UupVpxn	U(d>URR5(dURR5(agURn
/SQn[X�SU(+5nU(a�SnUS	:XaS
nOUS:XaSn[S
XU455(ag[R"XX/S9unnU(aX�;a4URRUURR55 U(dU
RS5 gg![R
av [
X�SS5R5nX�;aRSRUV
s/sHn
SU
-S-PM
 Os sn
fsn
5n[R
"[S5X\U4-5eGN/f=f)Nr)skeep�keep-merge3�keep-mergediffspremerger#�, �'s6%s.premerge not valid ('%s' is neither boolean nor %s)rxr��	mergediffr��merge3c3�j# �UH)n[R"UR55v� M+ g7fr.)rr�r�)�.0r�s  r!�	<genexpr>�_premerge.<locals>.<genexpr>�s(���
�9M��J���e�j�j�l�+�+�9M�s�13)�modes premerge successful
r)rOrMrr&r	�ConfigErrorr"�lower�joinr�anyrr�rS�debug)rGr�r�r�r�rr�r�r��scriptfnr�	validkeep�premerger��_validr��merged_text�	conflictss                  r!�	_premerger�s���08�-�D�F�X��%�*�*�%�%�'�'�5�:�:�+>�+>�+@�+@��	
���B�<�I�	��R�{��J�?������(�(��D�
��
'��D��
�:?�u�9M�
�
�
��!,�!8�!8���"
���Y��H�1�
�J�J���[�%�*�*�*:�*:�*<�=���H�H�.�/����;�����B�k�3�7�=�=�?���$��Z�Z�)� D�)�Q����D��)�� D�E�F��#�#��K�L��6�*�+��
�%��s�D�AF �E,
�+1F �F c��Uupgp�n
[R"U5nU	(a=URR[	S5Xk"UR554-5 gUR
5(dUR
5(a=URR[	S5Xk"UR554-5 gg)Ns2warning: internal %s cannot merge symlinks for %s
Fs@warning: internal %s cannot merge change/delete conflict for %s
T)rr�rr�rr<rM)rGr��fcd�fco�fcar�rr�r�r�r�r�s            r!�_mergecheckr	�s���08�-�D�F�X��"�"�4�(�H�������
�D�E��X�c�h�h�j�)�*�
+�	
��
�|�|�~�~�����������
�%�
��X�c�h�h�j�)�*�	
+�	
��r#c�Z�URnURSS5n[X5 [X55 [X%5 [R"UUUUUS9upxURRXqRR
55 SUS4$![Ra gf=f)a0
Uses the internal non-interactive simple merge algorithm for merging
files. It will fail if there are any conflicts and leave markers in
the partially merged file. Markers will have two sections, one for each
side of merge, unless mode equals 'union' or 'union-other-first' which
suppresses the markers.sexperimentalsrelaxed-block-sync-merge)r��relaxed_syncTF)TTF)	rr%r�rrOr�rSr	r�)	rGr�r�r�r�rrrrs	         r!�_merger�s���
���B��=�=��2M�N�L�&��E���D���E��"-�!8�!8�����%�"
���	�
�
����j�j�&6�&6�&8�9��Y��%�%���;�;�!� �!�s�!B�B*�)B*�unionsJwarning: conflicts while merging %s! (edit, then use 'hg resolve --mark')
)�precheckc��[XX4S5$)z�
Uses the internal non-interactive simple merge algorithm for merging
files. It will use both local and other sides for conflict regions by
adding local on top of other.
No markers are inserted.r
�r�rGr�r�r�r�r�r�s       r!�_iunionr�����$�u�H�5�5r#�union-other-firstc��[XX4S5$)z,
Like :union, but add other on top of local.rrrs       r!�_iunion_other_firstrs���$�u�,@�A�Ar#rxc��[XX4S5$)z�
Uses the internal non-interactive simple merge algorithm for merging
files. It will fail if there are any conflicts and leave markers in
the partially merged file. Markers will have two sections, one for each side
of merge.rxrrs       r!�_imergerrr#r�c��[XX4S5$)a
Uses the internal non-interactive simple merge algorithm for merging
files. It will fail if there are any conflicts and leave markers in
the partially merged file. Marker will have three sections, one from each
side of the merge and one for the base content.r�rrs       r!�_imerge3r-s���$�u�I�6�6r#smerge3-lie-about-conflictsr#c�(�[U0UD6up#nUSU4$rX)r)r �kwargs�b1�junk�b2s     r!�_imerge3alwaysgoodr ?s%���T�,�V�,�L�B�b��u�b�=�r#r�c��[XX4S5$)aS
Uses the internal non-interactive simple merge algorithm for merging
files. It will fail if there are any conflicts and leave markers in
the partially merged file. The marker will have two sections, one with the
content from one side of the merge, and one with a diff from the base
content to the content on the other side. (experimental)r�rrs       r!�_imerge_diffr"Rs�� �$�u�L�9�9r#smerge-localc��[XX4S5$)z_
Like :merge, but resolve all conflicts non-interactively in favor
of the local `p1()` changes.r�rrs       r!�_imergelocalr$e���
�$�u�H�5�5r#smerge-otherc��[XX4S5$)z_
Like :merge, but resolve all conflicts non-interactively in favor
of the other `p2()` changes.r�rrs       r!�_imergeotherr'mr%r#stagmergesjautomatic tag merging of %s failed! (use 'hg resolve --tool :merge' or another merge tool of your choice)
c�z�[R"XRURUR5upxXxS4$)z7
Uses the internal tag merge algorithm (experimental).
F)r�mergerO)	rGr�r�r�r�r�r��success�statuss	         r!�
_itagmerger,us/���n�n�T�:�:�u�z�z�4�9�9�M�O�G��E�!�!r#sdumpT)r�r�c�`�[XR5nURR5nSSKJn	 [URU	R5(a[R"S5e[R"US-URR55 URUS-URR5URR55 URUS-URR5URR55 g)a�
Creates three versions of the files to merge, containing the
contents of local, other and base. These files can then be used to
perform a merge manually. If the file to be merged is named
``a.txt``, these files will accordingly be named ``a.txt.local``,
``a.txt.other`` and ``a.txt.base`` and they will be placed in the
same directory as ``a.txt``.

This implies premerge. Therefore, files aren't dumped, if premerge
runs successfully. Use :forcedump to forcibly write files out.
r��contexts0in-memory merge does not support the :dump tool.s.locals.others.base)FrF)�_workingpathrOr<�r/�
isinstance�overlayworkingfilectxr	r�rr��decodeddata�wwriterDrS)
rGr�r�r�r�r�r��ar�r/s
          r!�_idumpr7�s���	�T�:�:�&�A�	�����	�B���%�*�*�g�;�;�<�<��/�/�?�
�	
�	�N�N�1�y�=�%�*�*�"8�"8�":�;��K�K��Y���
�
��� 1�5�:�:�3C�3C�3E�F��K�K��X�
�t�y�y�~�~�/������1B�C�r#s	forcedumpc	��[XX#XEU5$)zK
Creates three versions of the files as same as :dump, but omits premerge.
)r7rs       r!�
_forcedumpr9�s��
�$��d�f�E�Er#c�.�[R"S5e)Ns5in-memory merge does not support external merge tools)r	r�rs       r!�
_xmergeimmr;�s���
+�
+�@��r#c	
��URSS5n	U	(dg[Rn
UR5[	U5UR5U
"UR5U[	U5[
S5SUR5;USS.5U
"UR5U[
S5SUR5;USS	.5U
"UR5U[
S
5SUR5;USS	.5UUS.n[R"U	5n	[R"X5n[R"X	[RUS
9n
URU
R!U55 g)N�command-templatesspre-merge-tool-outputr��l�HG_MY_LABEL)�ctx�fctx�node�name�islink�label�base�
HG_BASE_LABEL)r@rArCrDrEr��HG_OTHER_LABEL)r@rBspathr�rFr�stoolpathstoolargs��defaults�	resources)rr�mappingdictrNrr<rrSr�
unquotestringr
�templateresources�
maketemplaterr�keywordsr+�
renderdefault)rrGr��fcl�fcbr�envr�r �tmplrL�props�tresr�s              r!�_describemergerX�sV��
�9�9�)�+C�D�D����*�*�K��
�
���V��������
�
����V���8���3�9�9�;�.��n�-�

�	
���
�
����7���3�9�9�;�.��.�/�
�
���
�
����8���3�9�9�;�.��/�0�
�
���C"
�E�J�"�"�4�(�D��&�&�r�0�D����
�:�.�.�$�	�A��I�I�a�o�o�e�$�%r#c
�	�URnURnURn	Uup�p�n[R"U5nUR5(dUR5(a=URR[
S5X�"UR554-5 g[X5n[URU
S5nSU	R5U	R54SUR5UR54/nSnSU;alUnUR5nURS5(a"[RRU5unnURS	UUR545 [!U5nUSS
unn[#U5S:XaUS
nSnUR5[%U5[%UR'5R)55[%U	R'5R)55S
UR+5;S
UR+5;S
U	R+5;U"U5U"U5U"U5S.
nURnUUUUU"U5U"U5U"U5S.n[,R."SUUS5n[1UU
S5(a<URR3[
S5X�"UR554-5 UcTUS-U-nURR5SU-5 [7UXXyUUUU5	 UR9UUR:USS9nO�URR5SX�4-5 SnSSKJn S[@RB"U
5-n UREUU 5n![MU![@RB"U5S5n"U"c#[HRJ"[
S5X�4-5e[NRP"U5n#SSKJ)n$ U$RUUUS UU"SU#0S!5un%n&U&(aSnURR5S"U-5 S!US#4sSSS5 $![Fa# [HRJ"[
S5U-5ef=f!,(df   g=f)$Ns7warning: %s cannot merge change/delete conflict for %s
)FrNsargsrFr�r#s$outputs.origr�r��c�r�UR(aSURUR4-$UR$)Ns%s: %s)�label_detailr�)r�s r!�format_label�_xmerge.<locals>.format_labels/���!�!� �E�K�K��1C�1C�#D�D�D��{�{�"r#r>)
sHG_FILEs
HG_MY_NODEs
HG_OTHER_NODEsHG_BASE_NODEsHG_MY_ISLINKsHG_OTHER_ISLINKsHG_BASE_ISLINKr?rHrG)r�rFr�soutputs
labellocals
labelothers	labelbase�\$c�V�[R"[R"U55$r.�rrmr�	localpath��ss r!�<lambda>�_xmerge.<locals>.<lambda>2s��h�)�)�$�.�.��*;�<r#r�s"running merge tool %s for file %s
� slaunching merge tool: %s
s	mergetool)�cwdr��
blockedtags%launching python merge script: %s:%s
rr)�
extensionsz
hgmerge.%ss&loading python merge script failed: %ss%s does not have function: %s)�hookrxTsmerge tool returned: %d
F)+rOrr�rMrr�rr<r0r"r4�endswith�os�splitextr�rD�_maketempfilesr�rrN�noderSr�interpolater&r+r�rX�systemr�r1rjr�sysstr�loadpath�	Exceptionr	r��getattrr�
shellsplitrk�
pythonhook)'rGr�r�r�r�r�r�rrrrr�r�r�r�r�rbr �files�outpath�localoutputpath�ext�	temppaths�basepath�	otherpathr]rTrr�rj�rrj�mod_name�mod�mergefn�argslistrk�ret�raiseds'                                       r!�_xmerger��s'��
�*�*�C�
�*�*�C�
�)�)�C�08�-�D�F�X��"�"�4�(�H�
�|�|�~�~�����������
�I�J��X�c�h�h�j�)�*�
+�	
���T�'�I��D�G�G�T�7�+�D�
�#�(�(�*�c�o�o�/�0�	�3�8�8�:�s���0�1�
�E��G��T���� �+�+�-���#�#�H�-�-�#%�7�7�#3�#3�O�#D� �O�S�
���h������?�@�	��	�)�'���m���)��y�>�Q��!�!��I�	#����
� ��=�#�C�M�M�O�$8�$8�$:�;�"�3�=�=�?�#7�#7�#9�:�!�S�Y�Y�[�0� $��	�	�� 3�#�s�y�y�{�2�(��/�+�E�2�*�4�0�
���W�W�� ����'��.�'��.�&�t�,�
��������<�	
���R��v�&�&��G�G�N�N��8�9���#�(�(�*�-�.�/�
����T�/�D�(�C��G�G�M�M�7�#�=�>��2�t�S�s�C��4�P��	�	�����C�L���A�
�G�G�M�M�9�X�<P�P�
��A�	
�(�'�(�/�/�$�*?�?�� �)�)�(�H�=��
�c�8�?�?�8�#<�d�C�G����k�k��6�7�8�:N�N��� �*�*�4�0�H���/�/��D�(�H�g���7J�D��K�C��������
�
�2�Q�6�7��Q��~�e
�	��~�
��k�k��?�@�8�K���
��
�	�s&�GQ<�'1Q�B*Q<�-Q9�9Q<�<
R
c���URR5nUR5cUR5nSU0nUR	U5n[
R"U5Ulg)zAApplies the given template to the ctx and stores it in the input.Nr@)rOrNrp�p1rQr�	firstliner\)r��templater3rV�templateresults     r!�_populate_label_detailr�asW��
�*�*�
�
�
 �C�
�x�x�z���f�f�h��
�S�M�E��+�+�E�2�N�#�-�-�n�=�E�r#c�(�URnURSS5nUb
[X2SU5n[R"U5n[
R"X05n[
R"X4[RUS9nUHn[Xv5 M g)z?Populates the label details using the conflict marker template.r=smergemarkerNsmergemarkertemplaterI)rrr"rrMr
rNrOrrPr�)rG�inputsrrr�rWrUr�s        r!�_populate_label_detailsr�ls���	
���B��y�y�-�~�>�H����B�&<�h�G���&�&�x�0�H��&�&�r�0�D��"�"�
�z�2�2�d��D����u�+�r#c�4�UcSSS.$SUS-SUS-S.$)z{Return a dictionary of extra labels for use in prompts to the user

Intended use is in strings of the form "(l)ocal%(l)s".
r#)r>�os [%s]rrr?)�labelss r!r�r�|s=��
�~���
�	
�����"�����"��r#c���UR5(agSSKJn [X#R5(aX[
R"S5upE[R"US5nURUR55 SSS5 OF[R"XUR55n[X5n[R "Xu5 UR#XPS9$!,(df   N=f)a~Makes and returns a filectx-like object for ``fcd``'s backup file.

In addition to preserving the user's pre-existing modifications to `fcd`
(if any), the backup is used to undo certain premerges, confirm whether a
merge changed anything, and determine what line endings the new file should
have.

Backups only need to be written once since their content doesn't change
afterwards.
Nrr.shg-merge-backup�wb)rG)rMr1r/r2r3r�mkstemprm�fdopenr�rDr�
backuppathr<r0r�copyfile�arbitraryfilectx)rGrrr/r�r�r4r6s        r!�_makebackupr��s����|�|�~�~����#�4�4�5�5��%�%�&8�9�
��
�Y�Y�r�4�
 �A�
�G�G�C�H�H�J��!�
 ��#�#�B�c�h�h�j�9����#���
�
�a� ��#�#�F�#�6�6�!�
 �s�& C$�$
C2c#�^# �[R"SS9mU4Sjn/nUHup4nURU"X4U55 M  Uv� [R"T5 g![R"T5 f=f7f)zqCreates a temporary file for each (prefix, path, data) tuple in `files`,
so an external merge tool may use them.
shgmerge-)�prefixc�>�[RRU5up4S[RRU5U4-n[RR	TU5nU(aXd-
n[
R"Xb5 U$)Ns%s~%s)rmr<rn�basenamer�rr�)r�r<rD�fullbaser|�pre�name�tmproots       �r!�maketempfrompath�(_maketempfiles.<locals>.maketempfrompath�sf������(�(��.�
���"�'�'�*�*�8�4�f�=�=���w�w�|�|�G�S�)����K�D����t�"��r#N)r�mkdtempr��shutil�rmtree)ryr��
temp_filesr�r<rDr�s      @r!roro�sl����
���k�2�G���J�#���d����*�6��>�?�$�����
�
�g����
�
�g��s�AA;�A �	A;� A8�8A;c
�
�URnUR5n	[R"U5n
U
"U	5nUR	5=(d' UR	5=(d UR	5nSUR5UR5-;n
UR
5=(d UR
5n[XX�X�5unnSnU[;a$URS5(aU[S5SnU(a�URS5(atSnURS5S:�a0US	SRSS
5unnU(dSnSU;dS
U;aSnOSnU(a"[R"[S5U-5eWnUR!SUU["R$"U5["R$"U
5["R$"U54-5 U[;a0[UnUR&nUR(nUR*nSnO7UR-5(a[.nO[0n[2n[S5nSnSnUUX�U4nU(dSS/n[U5S:aUR5S5 [6R8"XGS5n[6R8"XWS
5n8"XgS5nU[::Xa
U"UUUUUU5$X5R5:wa;UR=[S5U
"U5U
"UR55U4-5 OUR=[S5U-5 UR!SXEU4-5 U(aWU"XXEUU5(dGU(a?UR-5(a[R>"S5eURAUU-5 g[CXU5nS
nURESS5nU(a
[GX�S5n OUn U[2:Xa}[IUUUU5 Sn!U S:waUn!US:wdU S:wa[KUUUU/U!S9 [MUUUUU5nU(d US4U(dUbURO5 $$$SUl(SUl(SUl(U S:wa[KUUUU/US9 U"UUUUUUU5un"nn#U"(a[SUUX�UU5nU(aQU(a?UR-5(a[R>"S5eURAUU-5 [UU5 UU#4U(dUbURO5 $$$!U(dUbURO5 fff=f)apperform a 3-way merge in the working directory

mynode = parent node before merge
orig = original local filename before merge
fco = other file context
fca = ancestor file context
fcd = local file context for current/destination file

Returns whether the merge is complete, the return value of the merge, and
a boolean indicating whether the file was deleted from disk.r>N�	internal:sinternalrfF�:r��rT�\�/sinvalid 'python:' syntax: %ss?picked tool '%s' for %s (binary %s symlink %s changedelete %s)
smerging %s failed!
r�r�rZrFrsmerging %s and %s to %s
smerging %s
smy %s other %s ancestor %s
s0in-memory merge does not support merge conflictsr�r�smergemarkerssbasicr�)+rr<rr�rYrSrMr�rgrhr��count�rsplitr	r�rr�rr�r��	onfailurerr�r;r��	fullmerger�r�
MergeInputr�r+r�r�r�rr"�_run_partial_resolution_toolsr�rr�r\�_check�_onfilemergefailure)$rG�wctxr��origrrrr�rr�r��fduipathr�r�r�rr�r��
invalidsyntax�script�funcr�r�r�
isexternalr�r�r�r�r�r��internalmarkerstyle�markerstyle�	labeltool�	needcheckr�s$                                    r!�	filemerger��s��
���B�	����B��"�"�4�(�H���|�H�
�\�\�^�
?�s�|�|�~�
?�����F��c�i�i�k�C�I�I�K�/�/�G��<�<�>�3�S�\�\�^�L��t��W�K�N�D�(��H��y��T�_�_�\�:�:��C��$�&�'���H�'�'�
�3�3��
��>�>�$��1�$�'���|�2�2�4��;��F�H�� $�
��� �D�H�$4� $�
�� �M���+�+�a� ?�@�8�K�L�L����H�H�K������V�$����W�%����\�*�
�	
�	��y�������N�N�	��N�N�	��=�=���
��?�?����D��D��	��-�.�	����
��X�v��8�H���H�%��
�6�{�Q���
�
�g���"�"�3�q�	�2�E��"�"�3�q�	�2�E��!�!�#�a�y�1�D��G���������

�	
��x�x�z��
�	�	�
�*�+���~�x����
�3�X�>�
?�	
�
	�	�	�!�O�$�x�/�0��H�H�
,��#��
>�?����s��h�G�G����� � ��7�7�G���
�G�G�I��(�)��
��3�
'�F�	�A�F� �i�i���?���"�2�_�=�K�-�K��	�!�)�$��u�d�C��I��h�&�!�	�"�h�.�+��2I�'��5�%��.�Y���������A���%�x�H�V�'��M�M�O�(�q�C"&�E��!%�E�� $�D���(�"�#�D�5�%��*>�T�J� $��������!
��	�1�g���t�Q��#�v�6�A����?�?�$�$��;�;�+���
���	�H�,�-���#��'�z��V�'��M�M�O�(�q��q�V�'��M�M�O�(�q�s�A=T?�6B,T?�?Uc�B�URnURSS5(ag/n[5nSnURU5GHup�UR	S5Sn
X�;aM!URUSU
-/5nSnU(aX[R"URS	X�RR5S
9n
U
"URR55nU(dM�URUSU
-5(aM�URUSU
-S5nURUS
U
-U
5nURUSU
-5nURX�UU45 GM U(dgUR5 SURR5UR54SURR5UR54SURR5UR54/n[!U5nUunnnUH�up�nn["R$"U5nUUUS.n[&R("SUUS5nSUU4-nUR+UURSS9nU(a[,R."SU
U4-5e[&R0"U5n[&R0"U5nUU:XdM� O UR3W5 UR3[&R0"U55 UR3W5 SSS5 g!,(df   g=f)zCRuns partial-resolution tools on the three inputs and updates them.rxsdisable-partial-toolsNspartial-merge-toolsrrs%s.patternsTr#)r3s
%s.disables%s.orders
%s.executables%s.argsr�rFr�)r�rFr�r_c�V�[R"[R"U55$r.rarcs r!re�/_run_partial_resolution_tools.<locals>.<lambda>�s��(�-�-�d�n�n�Q�.?�@r#s%s %sspartial-mergetool)rhris)partial merge tool %s exited with code %d)rr%r�r�r�r(rr�rOrNr<�	configintrr��sortr�rorrmrrqrrr	�
StateErrorr��set_text)rGr�r�r�rr��seen�sectionrtr�r��patterns�is_match�m�order�
executabler ryr}rbr~rrjr�r��
local_text�
other_texts                           r!r�r�us���	
���B�	�}�}�X�7�8�8���E��5�D�$�G����w�'����w�w�t�}�Q����<���=�=��.�4�*?��D���������	�	�3��j�j�.B�.B�.D��A�������*�+�H��8��}�}�W�m�d�&:�;�;���L�L��+��*<�a�@�E����7�,<�t�,C�T�J�J��9�9�W�j�4�&7�8�D��L�L�%�z�4�8�9�#(�&��	�J�J�L�
�5�:�:�?�?�$�e�j�j�l�3�	�$�)�)�.�.�"�D�I�I�K�0�	�5�:�:�?�?�$�e�j�j�l�3�
�E�
��	�)�)2�&�	�8�Y�-2�)�E��T��%�%�j�1�C�#�!�#��G�
�#�#����@�	�D��c�4�[�(�C��	�	�#�4�9�9�9M�	�N�A���&�&�@�D�!�9�L������y�1�J����y�1�J��Z�'��1.3�4	���z�"��
�
�d�m�m�H�-�.�
���z�"�?
�	�	�s�>B:L�<AL�
Lc�D�[S5n[R"U5e)Ns0merge halted after failed merge (see hg resolve))rr	�InterventionRequired)r�s r!�
_haltmerger��s��
�?�
@�C�
�
$�
$�S�
)�)r#c��URSS5nUS:Xa+[S5nURUS5S:Xa
[5 US:Xa[5 gg)Nrxs
on-failurer�s,continue merge operation (yn)?$$ &Yes $$ &Norrshalt)rrr�r�)r�actionr�s   r!r�r��sO��
�Y�Y�x��
/�F�
����?�@��
�?�?�3��"�a�'��L�
�����r#c�`�[[R"SU[R55$)Ns^([<>=+|-])\1{6}( .*)$)�bool�re�search�	MULTILINEr�s r!�hasconflictmarkersr��s*��
�
�	�	�&���L�L�	
��r#c��UR5n[R"U5nU(dA[X#S5(dS[	X#S5;a [UR
55(aSnSnS[	X#S5;a-SnUR[S5U"U5-S5(aSnU(dlU(de[X#S	5(dS
[	X#S5;aDUbAURU5(d+UR[S5U"U5-S5(aSnUb&[X#S5(a[[X5U5 U$)
Nscheckconflictss	conflictsscheckrFr�Ts0was merge of '%s' successful (yn)?$$ &Yes $$ &NoscheckchangedschangedsJ output file %s appears unchanged
was merge successful (yn)?$$ &Yes $$ &Nosfixeol)r<rr�r&r)r�rDr�rrPr�r0)	rGr�rrrr�r�r��checkeds	         r!r�r��s2��	����B��"�"�4�(�H���"�-�.�.��9�R�x�8�8��c�h�h�j�)�)��A��G��I�b��1�1���
�?�?�
�A�B��r�l�
�
�
�
�
�A�
���b��0�0��Y�r��:�:���c�g�g�f�o�o�����&��
�2�,�������
��i��)�<�<��,�t�)�6�2��Hr#c�@�URUR55$r.)�wjoinr<)rGr3s  r!r0r0s���:�:�c�h�h�j�!�!r#c	���URR5H�up4SU-nU[U'U[SU-'U[U'[	UR
R5VVs/sHupgU(dMUPM snn5nU(dMrSSR
U5-n	UR[R"SU	-5-UlM� [S5 [S5 [S5 g	s snnf)
z4Load internal merge tool from specified registrarobjr�r�s    (actual capabilities: %s)r�s

%ss*    (actual capabilities: binary, symlink)s!    (actual capabilities: binary)s"    (actual capabilities: symlink)N)�_tabler�rg�internalsdocr�rzr�rarrsr)
r�extname�registrarobjr�r��fullnamertr�rz�capdescs
          r!�loadinternalmerger�s���"�)�)�/�/�1�
���$�;��"�	�(��)-�	�,��%�&�!%��X���T�->�->�-D�-D�-F�L�-F�T�Q�!�q�-F�L�M���<�6�����:��G� �<�<�(�/�/�)�g�:M�*N�N�D�L�2�"�3�4��*�+��+�,��#Ms�%
C2�6C2r.)V�
__future__r�
contextlibrmr�r��i18nrrprrr1rr	r
rrr
rrrrrrr�utilsrrr"r&r)rgr��
internalmerge�internaltoolr��	mergeonlyr�r�r�r+rkrnrir�r�r�r�r�r�r�r�r�rr	rrrrrr r"r$r'r,r7r9r;rXr�r�r�r�r��contextmanagerror�r�r�r�r�r�r0r��values�
i18nfunctionsr?r#r!�<module>r�s���#��	�	�
���
���� �@�D�=�
�	����&�&�(���
�
���"�"�	��"�"�	� !�-� �� !�.� ��1�1�h&�$�2�n�b
�	.��i��!�0B�"�0B�f�h�� �$�!�$�
�h�� ��!���g�w��
� �
���)
�X�*&�>��
��	2����6��6���
��	2����B��B���
��	2����6��6��
�
��	2����7��7��!�
��
�	�
�
�
���
��	2����:��:��n�i�+�>�6�?�6��n�i�+�>�6�?�6���
��	"���"��"��g�y��t�<��=��8�l�I�d�D�A�F�B�F��3&�lo�d>�
,� �"7�<������0n�bF#�R*�
��,
�^"�-�:�$��l�+�� � �"�
r#

Youez - 2016 - github.com/yon3zu
LinuXploit