403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/breezy/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/breezy/__pycache__/annotate.cpython-313.pyc
�

p��g�G��*�SrSSKrSSKrSSKJr \"\"5S5 SSKJrJrJr SSK	J
r
 SSKJrJ
r
 SS	jrS
rSrSSjrSS
jrSSjrSrSrSrSrSrSSKJr g!\a"r\R:"\5 SSKJr SrCgSrCff=f)z%File annotate based on weave storage.�N�)�lazy_importz<
import patiencediff

from breezy import (
    tsort,
    )
)�config�errors�osutils)�_strip_NULL_ghosts)�CURRENT_REVISION�Revisionc��UcURnUc[Rn[R"5n[UR
U55nU(a[X�XG5$[USS5(d�[[5n	UR5U	lUR5RS5U	lSU	l['[(R("5S5U	l[R,"5U	lOSn	[[1X�U	55n
[3X�X$U5 g![ R"a
 SU	lN�f=f)aAnnotate path in a tree.

The tree should already be read_locked() when annotate_file_tree is called.

:param tree: The tree to look for revision numbers and history from.
:param path: The path to annotate
:param to_file: The file to output the annotation to.
:param verbose: Show all details rather than truncating to ensure
    reasonable text width.
:param full: XXXX Not sure what this does.
:param show_ids: Show revision ids in the annotation output.
:param branch: Branch to use for revision revno lookups
N�get_revision_idF�emailz
local user�?�)�branch�sys�stdoutr�get_terminal_encoding�list�
annotate_iter�_show_id_annotations�getattrr
r	�get_parent_ids�
parent_ids�get_config_stack�get�	committerr�NoWhoami�message�round�time�	timestamp�local_time_offset�timezone�_expand_annotations�_print_annotations)�tree�path�to_file�verbose�full�show_idsr�encoding�annotations�current_rev�
annotations           �1/usr/lib/python3/dist-packages/breezy/annotate.py�annotate_file_treer10s�� �~��������*�*���,�,�.�H��t�)�)�$�/�0�K��#�K�$�I�I��4�*�E�2�2��/�0��!%�!4�!4�!6���	1�$*�$;�$;�$=�$A�$A�'�$J�K�!�"��� %�d�i�i�k�1� 5���&�8�8�:������)�+�{�K�L�J��z�G�8�D�����	1�$0�K�!�	1�s�$D+�+E	�E	c��[U5S:XaS=pVO$[SU55n[SU55nU(d[US5n[US5nSnUH�up�p�nU(aUSU3SU	SU3SU
S	S3n
O*[U5U:�aUS
US-
S-nUSU3SU	S
S
SS3n
U
R5S:Xa	U(aUn
UR	U
5 UR	SRUR
U555 U
nM� g
)z�Print annotations to to_file.

:param to_file: The file to output the annotation to.
:param verbose: Show all details rather than truncating to ensure
    reasonable text width.
:param full: XXXX Not sure what this does.
rc3�># �UHn[US5v� M g7f�rN��len��.0�xs  r0�	<genexpr>�%_print_annotations.<locals>.<genexpr>is���;�
�1�S��1��Y�Y�
���c3�># �UHn[US5v� M g7f)rNr5r7s  r0r:r;js���:�z�!�C��!��I�I�z�r<�r��<� z>8Nr�>�z<7z| {}
)r6�max�min�lstrip�write�format�decode)r/r)r(r*r,�max_origin_len�
max_revno_len�prevanno�	revno_str�author�date_str�_line_rev_id�text�annos              r0r%r%^s/���:��!��)*�*����;�
�;�;���:�z�:�:�
���M�2�.�
��
�q�)�M��H�;E�7�	�8�4����-��0�1��6�!�N�;K�9K�2L�A�h�WY�]�Z[�\�D��9�~�
�-�%�&9�
��(9�:�S�@�	���-��0�1��6�"�1�:�b�/��C�D��;�;�=�B��4��D�	�
�
�d���
�
�h�o�o�d�k�k�(�&;�<�=���<F�c���U(dgSn[SU55nUHPupgU(dXF:waUnOSnURURS5SU3SURU535 UnMR g)Nc3�<# �UHup[U5v� M g7f�Nr5)r8�originrQs   r0r:�'_show_id_annotations.<locals>.<genexpr>�s���E�����V����s�rSzutf-8rBz | )rDrGrI)	r-r(r*r,�last_rev_idrJrWrQ�thiss	         r0rr�s�����K��E��E�E�N�#����;�(��D��D��
�
��{�{�7�#�A�n�%5�#5�6�c�$�+�+�h�:O�9P�Q�	
���$�rSc#�^# �URnUVVs1sHupEUiM	 nnnUb�URnUR5nURUR5V	V
s0sHup�U
cM
X�_M nn	n
[U5nURX�'[RX�SSS9nUV
VVVVs0sHup�nnnUU_M
 nnnnn
nOUR5nSn0n[U;a'UR5S-S34U['UU['URSURU555 UH�unnURS5nUU:XaSunnnO�UnUU;aS	unnnOS
RSUU55nUUnUR=(d Sn[ R""S
[ R$"UR&U-55nUR)5Sn[*R,"U5unnU(aUnUUUUU4v� M� gs snnfs sn
n	fs snnnnn
f7f)asExpand a file's annotations into command line UI ready tuples.

Each tuple includes detailed information, such as the author name, and date
string for the commit, rather than just the revision id.

:param annotations: The annotations to expand.
:param revision_id_to_revno: A map from id to revision numbers.
:param branch: A locked branch to query for revision details.
NT)�generate_revnorrc3�6# �UHnUScMUv� M g7fr4�)r8�entrys  r0r:�&_expand_annotations.<locals>.<genexpr>�s ����<�E���8�	��<�s�
�	s
)r?r?r?)rrr�.c3�8# �UHn[U5v� M g7frV)�str)r8�is  r0r:r`�s���$R�5Q��S��V�V�5Q�s�rz%Y%m%d)�
repository�revision_id�	get_graph�
iter_ancestryrr�tsort�
merge_sort�get_revision_id_to_revno_mapr	�revno�update�iter_revisions�rstrip�joinr#r �strftime�gmtimer!�get_apparent_authorsr�parse_username)r-rr.re�o�t�revision_ids�
last_revision�graph�key�value�revision_graph�merge_sorted_revisions�seq_num�rev_id�depthrl�end_of_merge�revision_id_to_revno�last_origin�	revisionsrWrQrMrNrO�rev�tz�_r
s                              r0r$r$�sY����"�"�J�"-�.�+�$�!�A�+�L�.���$�/�/�
��$�$�&��$�1�1�+�2H�2H�I�
�I�
���
�C�J�I�	�
�
,�N�;��(3�(>�(>��%�!&�!1�!1��4��"2�"
��
@V� 
�?U�;����|�
�E�M�?U�	� 
�� &�B�B�D���K��I��<�'�5;�\�\�^�a�5G�4H��2J�1L��-�.�&1�	�"�#�
�����.�.�|�<���
$�����{�{�7�#���[� �,8�)�Y��� �K��Y�&�0?�-��F�H��H�H�$R�5I�&�5Q�$R�R�	��F�#�C����"��B��}�}�X�t�{�{�3�=�=�2�;M�/N�O�H��-�-�/��2�F��,�,�V�4�H�A�u�����&�(�F�D�9�9�'$��Q/��
�� 
�s/�H-�H�AH-�"	H�/H�59H-�.H$�E-H-c��^^�[U5S:XaTVs/sHnTU4PM	 nnU$[U5S:Xa[USTTU5nU$[U5S:Xa$[USTTU5n[USTTXt5nU$[USTTU5/nURUU4SjUSS55 /n[	U6H�n	U	V
Vs1sHup�U
iM	 nn
n[U5S:XaURU	S5 M>U	SSn[U5S:XaTU;aUR
T5 [U5S:Xa#URUR5U45 M�URTU45 M� U$s snfs snn
f)a�Create a new annotated version from new lines and parent annotations.

:param parents_lines: List of annotated lines for all parents
:param new_lines: The un-annotated new lines
:param new_revision_id: The revision-id to associate with new lines
    (will often be CURRENT_REVISION)
:param left_matching_blocks: a hint about which areas are common
    between the text and its left-hand-parent.  The format is
    the SequenceMatcher.get_matching_blocks format
    (start_left, start_right, length_of_match).
:param heads_provider: An object which provides a .heads() call to resolve
    if any revision ids are children of others.
    If None, then any ancestry disputes will be resolved with
    new_revision_id
rr�c3�>># �UHn[UTT5v� M g7frV)�_reannotate)r8�p�	new_lines�new_revision_ids  ��r0r:�reannotate.<locals>.<genexpr>s!����
�@Q�1�K��9�o�6�6�@Q�s�N)r6r��_reannotate_annotated�extend�zip�append�remove�pop)
�
parents_linesr�r��_left_matching_blocks�heads_provider�line�lines�left�
reannotations�annos�a�l�originss
 ``          r0�
reannotater��s����,�=��Q��5>�?�Y�T�/�4�(�Y��?�F�L�E

�]�	�q�	 ���!��i��:O�
��B�L�=

�]�	�q�	 ���!��i��:O�
��&��!��i��$�
��4�L�+
��a� �)�_�>S�
�
�
�
	���
�@M�a�b�@Q�
�	
����-�(�E�%*�+�U�T�Q�q�U�G�+��7�|�q� ����U�1�X�&��Q�x��{���w�<�1�$��G�)C��N�N�?�3��w�<�1�$��L�L�'�+�+�-��!6�7��L�L�/�4�!8�9�)��L��G@��.,s�E/�E4c��SnUc<UVVs/sHupVUPM	 nnn[RSXq5nUR5n/n	UH<up�nXUHn
U	RX-45 M U	R	X
X�-5 X�-nM> U	$s snnf)Nr)�patiencediff�PatienceSequenceMatcher�get_matching_blocksr�r�)�parent_linesr�r��matching_blocks�new_cur�rr��plain_parent_lines�matcherr�rd�j�nr�s              r0r�r�s����G���,8�9�L�D�A�a�L��9��6�6��$�
��"�5�5�7���E�"���a��a�(�D��L�L�/�0�1�)�
���\�a�e�,�-��%��	#�
�L��:s�Bc�N�[RSX5nUR5$rV)r�r�r�)�old�newr�s   r0�_get_matching_blocksr�)s#���2�2�4��B�G��&�&�(�(rSc��[U5S$)a�Chose an attribution between several possible ones.

:param annotated_lines: A list of tuples ((file_id, rev_id), line) where
    the lines are identical but the revids different while no parent
    relation exist between them

 :return : The "winning" line. This must be one with a revid that
     guarantees that further criss-cross merges will converge. Failing to
     do so have performance implications.
r)�sorted)�annotated_liness r0�_old_break_annotation_tier�1s��$�/�"�1�%�%rSc
	��URn
URnXVUVV
s/sHup�U
PM	 nnn
XUn[X�5nSnUH�unnnUU:�aU
"X#U-UU-5 [U5H�nX#U-U-nXVU-U-nUSUS:Xa
U"U5 M-USU	:Xa
U"U5 M@UcU"U	US45 MRUR	USUS45n[U5S:Xa!U"[
[U55US45 M�[cU"[UU/55 M�U"[UU/55 M� UU-nM� gs sn
nf)a�Find lines in plain_right_lines that match the existing lines.

:param output_lines: Append final annotated lines to this list
:param plain_child_lines: The unannotated new lines for the child text
:param child_lines: Lines for the child text which have been annotated
    for the left parent

:param start_child: Position in plain_child_lines and child_lines to start
    the match searching
:param end_child: Last position in plain_child_lines and child_lines to
    search for a match
:param right_lines: The annotated lines for the whole text for the right
    parent
:param start_right: Position in right_lines to start the match
:param end_right: Last position in right_lines to search for a match
:param heads_provider: When parents disagree on the lineage of a line, we
    need to check if one side supersedes the other
:param revision_id: The label to give if a line should be labeled 'tip'
rNr)
r�r�r��range�headsr6�next�iter�_break_annotation_tier�)�output_lines�plain_child_lines�child_lines�start_child�	end_child�right_lines�start_right�	end_rightr�rf�
output_extend�
output_appendr�r��plain_right_subset�plain_child_subset�match_blocks�last_child_idx�	right_idx�	child_idx�	match_len�offsetr��rightr�s                         r0� _find_matching_unannotated_linesr�Fs���>!�'�'�M� �'�'�M�(3�	�(J�K�(J���!�(J��K�*�y�A��'�(:�O�L��N�+7�'�	�9�i��~�%���.�8�;��;R�S�
��I�&�F��Y�6��?�@�D��i� 7�&� @�A�E��A�w�%��(�"��d�#��a��K�'��e�$�"�)�!�;��Q��"8�9�*�0�0�$�q�'�5��8�1D�E�E��5�z�Q��%�t�D��K�'8�$�q�'�&B�C�1�8�)�*C�T�5�M�*R�S�)�*?��u�
�*N�O�5'�6#�Y�.��C,8��
Ls�Ec
��[U5[U5:wa[S5e/nURnSnSn[X5n	U	HCup�nXz:XdX�:XaU"X8U5 O[	UUUUUUUU
UU5
 X�-nX�-nU"X;X�-5 ME U$)a%Update the annotations for a node based on another parent.

:param right_parent_lines: A list of annotated lines for the right-hand
    parent.
:param new_lines: The unannotated new lines.
:param new_revision_id: The revision_id to attribute to lines which are not
    present in either parent.
:param annotated_lines: A list of annotated lines. This should be the
    annotation of new_lines based on parents seen so far.
:param heads_provider: When parents disagree on the lineage of a line, we
    need to check if one side supersedes the other.
z(mismatched new_lines and annotated_linesr)r6�AssertionErrorr�r�r�)
�right_parent_linesr�r�r�r�r��lines_extend�last_right_idx�
last_left_idx�matching_left_and_rightr��left_idxr�s
             r0r�r��s����9�~��_�-�-��G�H�H�
�E��<�<�L��N��M�2�3E�W��*A�&�	�Y��&�-�*C���x�@�A�
-������"�����
�#�.�� �,�
��_��0D�E�F�1+B�2�LrS)�	Annotator)FFFNrV)NN)�__doc__rr r�globalsr?rrrrer�revisionr	r
r1r%rr$r�r�r�r�r�r�r��breezy._annotator_pyxr��ImportError�e�failed_to_load_extension�breezy._annotator_pyr^rSr0�<module>r�s���",���$���I��	�&�%�*�0�LP�+E�\ �F�"F:�Z��:�z�")�
��&�*I/�X3�l/�/���/��$�$�Q�'�.�.��/�s�#A*�*B�0B
�
B

Youez - 2016 - github.com/yon3zu
LinuXploit