HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //usr/lib64/python2.7/site-packages/hgext/blackbox.pyo
�
1�3\c@@s�dZddlmZddlZddlZddlmZddlmZddl	m
Z
mZmZm
ZmZddlmZmZdZiZeje�ZiZeje�Zed	d
de�ed	ddd
�ed	dde�ed	ddd�ed	ddd��dad�Zd�Zd�Zd�Zed	ddded�fged�dejde �d��Z!dS(s�log repository events to a blackbox for debugging

Logs event information to .hg/blackbox.log to help debug and diagnose problems.
The events that get logged can be configured via the blackbox.track config key.

Examples::

  [blackbox]
  track = *
  # dirty is *EXPENSIVE* (slow);
  # each log entry indicates `+` if the repository is dirty, like :hg:`id`.
  dirty = True
  # record the source of log messages
  logsource = True

  [blackbox]
  track = command, commandfinish, commandexception, exthook, pythonhook

  [blackbox]
  track = incoming

  [blackbox]
  # limit the size of a log file
  maxsize = 1.5 MB
  # rotate up to N log files when the current one gets too big
  maxfiles = 3

i(tabsolute_importN(t_(thex(tencodingtpycompatt	registrartuitutil(tdateutiltprocutilsships-with-hg-coretblackboxtdirtytdefaulttmaxsizes1 MBt	logsourcetmaxfilesittrackcC@sdgS(Nt*((((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyt<lambda>Stc	@s��fd�}�jdd�}d}|dkry�j|�}Wntk
r\qX|j|kr�j|�}�jdd�}xLtj|ddd�D]1}|d	d
||dfdd
||f�q�W|d	|d|dko�|d�qn�|d
�S(Nc@s�y�j|�WnBtk
rU}|jtjkrV�jd||jf�qVnXy|rr�j||�nWnEtk
r�}|jtjkr��jd|||jf�q�nXdS(Ns warning: cannot remove '%s': %s
s(warning: cannot rename '%s' to '%s': %s
(tunlinktOSErrorterrnotENOENTtdebugtstrerrortrename(toldpathtnewpathterr(Rtvfs(s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pytrotateYs		R
R
sblackbox.logiRii����Rs%s.%dRs.1ta(tconfigbyteststatRtst_sizetjoint	configintRtxrange(	RRRR
tnametsttpathRti((RRs4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyt_openlogfileXs"
 c@s5d|jf�fd��Y��|_�t_dS(Nt
blackboxuic@sPeZed��Zejd��Z�fd�Z�fd�Zd�Z	RS(cS@sFd}t|dd�}|rB|j}|jd�sBd}qBn|S(Nt_bbrepot.(tNonetgetattrRtisdir(tselfRtrepo((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyt_bbvfs|s	cS@s|jdd�S(NR
R(t
configlist(R2((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyR�sc@sEt�|�j||�|jrA|jdddj|��ndS(NRs%sR(tsuperRt	debugflagtlogR$(R2tmsgtopts(R,(s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyR�s	c@sWt�|�j|||�d|jkr>||jkr>dS|jrP|}nt}|s`dS|j}|ssdSt|dd�}ts�|r�|ant|dt�r�dSt|_	|j
dd�}tj|d�}t
j�}	dt
j�}
|d|d	}d
}d}
|r�|d}|j�}djg|D]}t|j��^qA�}|jd
d�r�|jdtdtdt�r�d}
q�n|jd
d�r�d|}nd}yNd}||	||
|
||f}t||��}|j||�WdQXWn6ttfk
rI}|jdtj|j��n
Xt|_	dS(NRR-t_bbinlogtdevelsdefault-dates%Y/%m/%d %H:%M:%Ss%diis	(unknown)Rt+R
RtmissingtmergetbranchRs [%s]s%s %s @%s%s (%s)%s> %ss*warning: cannot write to blackbox.log: %s
(R6R8RR4tlastuiR0R/tFalsetTrueR;t
configdateRtdatestrR	tgetusertgetpidtparentsR$Rtnodet
configboolRR+twritetIOErrorRRRt
strtolocalR(R2teventR9R:RRR3RtdatetusertpidtformattedmsgtrevtchangedtctxRHtptsrctfmttargstfpR(R,(s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyR8�sV			
		
.
	cS@s
||_dS(N(R-(R2R3((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pytsetrepo�s(
t__name__t
__module__tpropertyR4Rt
propertycacheRRR8R[((R,(s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyR,{s

;(t	__class__tuimodR(R((R,s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pytwrapuizsR	cC@st|�dS(N(Rb(R((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pytuisetup�scC@s[|j�sdStj|d�rG|j|�tdkrG|aqGn|jjd�dS(NR[sblackbox.log(tlocalRtsafehasattrR[RAR/t_wlockfreeprefixtadd(RR3((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyt	reposetup�s
tltlimiti
sthe number of events to showshg blackbox [OPTION]...thelpcategoryt	helpbasicc
O@s�|jjd�sdS|jd�}|jdd�}|j�jd�}d}g}xPt|�D]B}	||kr{Pntjd|	�r�|d7}n|j|	�qeW|j	dj
t|���dS(	s&view the recent repository events
    sblackbox.logNRjtrs
is+^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} .*> .*i(RtexiststgettreadtsplittreversedtretmatchtappendtstatusR$(
RR3trevsR:RjRZtlinestcounttoutputtline((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyR
�s

("t__doc__t
__future__RRRstmercurial.i18nRtmercurial.nodeRt	mercurialRRRRRaRtmercurial.utilsRR	t
testedwithtcmdtabletcommandtconfigtablet
configitemRBR/RAR+RbRcRhtCATEGORY_MAINTENANCERCR
(((s4/usr/lib64/python2.7/site-packages/hgext/blackbox.pyt<module>$s@(	
	"	V