HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //usr/lib/python2.7/dist-packages/mercurial/copies.pyc

Xc@@sddlmZddlZddlmZmZmZmZdZdZ	ddZ
d	Zed
Z
edZdZed
ZddZdZdZdZdZdZedZdS(i(tabsolute_importNi(tnodetpathutiltscmutiltutilc
C@s|j}t|}|dkr*|}n|dkr?|}nid|6d|6}||g}tj|t|}t}|}	x#|rtj|}
|
|krg|jjD]}|j	|^q}n|j
|
}x|D]}|dkrqn||krL||
||<||r8|d7}ntj||q||r||||
krd||<|d8}t}qqW||
r|
}	|d8}qqW|sdSt
|	||S(s
    Find the last revision that needs to be checked to ensure that a full
    transitive closure for file copies can be properly calculated.
    Generally, this means finding the earliest revision number that's an
    ancestor of a or b but not both, except when a or b is a direct descendent
    of the other, in which case we can return the minimum revnum of a and b.
    None if no such revision exists.
    iiiN(t	changelogtlentNonetheapqtheapifytFalsetheappoptdirstatetparentstrevt
parentrevstheappushtTruetmin(
trepotatbtcltworkingtsidetvisittinterestingthascommonancestortlimittrtpR
((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt
_findlimitsF			
	.






cC@s|j}xy|jD]k\}}||krk|||krR||||<n||krk||=qkn||kr|||<qqWx<|jD].\}}||kr||kr||=qqW|S(schain two sets of copies a->b(tcopyt	iteritemstitems(tsrctdstRRtttktv((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_chainhs
icC@swxp|jD]b}|j|jd|jkr;|S|dkr
|j|kr
|j|kr
dSq
WdS(sreturn file context that is the ancestor of fctx present in ancestor
    manifest am, stopping after the first ancestor lower than limitiN(t	ancestorstgettpathRtfilenodetlinkrevR(tfctxtamRtf((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt
_tracefiles
$0cC@sS|jj}|jj}x.|jD] }||dkr+||=q+q+W|S(Ntanm(t_repoRtcopiesR tkeys(tdtdstcR&((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_dirstatecopiesscC@sL|j}|j}|r?|j|}|j|}n|j|S(sComputes which files are in b but not a.
    This is its own function so extensions can easily wrap this call to see what
    files _forwardcopies is about to process.
    (tmanifesttmatchest
filesnotin(RRtmatchtmatmb((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_computeforwardmissingsc
C@sd}|jdkrC|}|j}||krCt|Snt|j|j|j}|dkryd}n|j}i}|}|r|j|kr|jjtj	krt
j|j|j}nt
||d|}|jjj|jgdt}	xL|D]D}
||
}|	|_t|||}|r#|j||
<q#q#W|dk	rt|||t|}n|S(s<find {dst@b: src@a} copy mapping where a is an ancestor of biR=t	inclusiveN(RRtp1R9RR3R:tp2RtnullidRt
matchfilestfilesR@RR)Rt_ancestrycontextR1R+R((
RRR=twRR/tcmtforwardmissingmatchtmissingtancestrycontextR0R.tofctx((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_forwardcopiess2
!	4$

	cC@st|jjjddriSt||}i}x<t|jD](\}}||krbqDn|||<qDW|S(Ntexperimentaltdisablecopytrace(R3tuit
configboolRNtsortedR!(RRR0RR&R'((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_backwardrenamessc	C@s||ks|s|riS|j|}||krLt||d|S||kret||St||t||t||d|S(s5find {dst@y: src@x} copy mapping for directed compareR=(tancestorRNRTR((txtyR=R((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt
pathcopiess
tc	C@st||}t||}d}|r=|d|7}n|rm|jjd|ddj|fn|r|jjd|ddj|fn||fS(sComputes, based on addedinm1 and addedinm2, the files exclusive to c1
    and c2. This is its own function so extensions can easily wrap this call
    to see what files mergecopies is about to process.

    Even though c1 and c2 are not used in this function, they are useful in
    other extensions for being able to read the file nodes of the changed files.

    "baselabel" can be passed to help distinguish the multiple computations
    done in the graft case.
    s  unmatched files in %ss
 (from %s)s
%s:
   %s
tlocals
   tother(RSRQtdebugtjoin(	Rtc1tc2t	addedinm1t	addedinm2t	baselabeltu1tu2theader((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_computenonoverlaps**c@sjjtdddkrg}dkrpgjD]}|j^qU}njj|dt_nfd}t	j
|S(sreturn a 'getfctx' function suitable for _checkcopies usage

    We have to re-setup the function building 'filectx' for each
    '_checkcopies' to ensure the linkrev adjustment is properly setup for
    each. Linkrev adjustment is important to avoid bug in rename
    detection. Moreover, having a proper '_ancestrycontext' setup ensures
    the performance impact of this adjustment is kept limited. Without it,
    each file could do a full dag traversal making the time complexity of
    the operation explode (see issue4537).

    This function exists here mostly to limit the impact on stable. Feel
    free to refactor on default.
    RGRAc@sht|dkr=jdkr1j|Sd|Sj|d|}|_|_|S(Nitfileid(RRRtfilectxRGt_descendantrev(R0tnR.(tactctxRR(s4/usr/lib/python2.7/dist-packages/mercurial/copies.pytmakectxs
		N(RR3tgetattrRR
RR)RRGRtlrucachefunc(RltrevsRRm((RkRlRRs4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_makegetfctxs		(
cC@si}x6|D].}||kr
|||||<||=q
q
Wxc|D][}||ks^t||}|d|kr||d|dg||<qF|||<qFW|S(scombine partial copy pathsii(tAssertionError(tcopyfromtcopytot	finalcopytdivergetincompletediverget	remainderR0tic((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_combinecopies$s


c5C@s	|s|s||kr*iiiifS|jdkrp|j|jjkrp|jjiiifS|jjddriiiifS|jdkr|jn|}|jdkr|jn|}||kp|j|}||kp|j|}|p|}|}	|r?|j	|}	nt
||j|j}
|
dkryiiiifS|jjd|
|j}|j}|j}
i}i}iid6id6id6|d6|d6}iid6id6id6|d6|d6}|j
|
}|j
|
}t||@}|	|krwt|||||\}}||}}nft|||||d	d
\}}|	j}t||||j
||j
|d	d\}}x0|D](}t||||||	||
|	qWx0|D](}t||||||	||
|	qWt|dj|dj}t|dj|dj}|rt|d|d|||nt|d|d|||i}t}t}x|jD]\} }!t|!dks+| |ks+| |kr|| =| |kr| |krg|!D]$}||kso||krQ|^qQ|| <|j|!qq|j|!qW|r|jjd
dj|ni}"i}#i}$iid6id6id6|"d6|#d6}%iid6id6id6|"d6|#d6}&xR|D]J}t||||||	||
|%	t||||||	||
|&	q4W|r|&dstti|%d||"|#}$ne|r|%dstti|&d||"|#}$n/|%dst|&dst|#stxS|$D]K}||"ks<t|$|}'|'d|rY|n|kr$|'|"|<q$q$WxQ|"jD]C\} }!t|!dkr|!d|!dkr| ||!d<qqW|ru|jjru|jjdxt|D]x}d}(||kr|(d7}(n||kr4|(d7}(n||krM|(d7}(n|jjd||||(fqWn~|s|i||fS|jjd|j|j})}*|)jd|*jdt}+i},x|jD]\}-}.tj|.tj|-}/}0|/|+kr*qq|/|)krV|0|)krV|+j|/dq|/|*kr|0|*kr|+j|/dq|/d|,kr|,|/d|0dkr|+j|/dq|0d|,|/d<qWx$|+D]}1|1|,kr|,|1=qqW~)~*~+|,s	|i||fSx,|,D]$}2|jjd|2|,|2fq!	Wi}3x||D]}||krZ	xo|,D]d}2|j |2rs	|,|2|t|2}4|4|kr	|4|3|<|jjd||4fnPqs	qs	WqZ	qZ	W||3||fS(sM
    Find moves and copies between context c1 and c2 that are relevant
    for merging. 'base' will be used as the merge base.

    Returns four dicts: "copy", "movewithdir", "diverge", and
    "renamedelete".

    "copy" is a mapping from destination name -> source name,
    where source is in c1 and destination is in c2 or vice-versa.

    "movewithdir" is a mapping from source name -> destination name,
    where the file at source present in one context but not the other
    needs to be moved to destination by the merge process, because the
    other context moved the directory it is in.

    "diverge" is a mapping of source name -> list of destination names
    for divergent renames.

    "renamedelete" is a mapping of source name -> list of destination
    names for files deleted in c1 that were renamed in c2 or vice-versa.
    RORPs&  searching for copies back to rev %d
R tfullcopyt
incompleteRvRwRbtbasestopological common ancestoris%  unmatched files new in both:
   %s
s
   iisK  all copies found (* = to merge, ! = divergent, % = renamed and deleted):
RYt*t!t%s   src: '%s' -> dst: '%s' %s
s!  checking for directory renames
t/s)   discovered dir src: '%s' -> dst: '%s'
s'   pending file src: '%s' -> dst: '%s'
N(!RRRRBR4RQRRRt
descendantRURR\R:R<RSRft_checkcopiestdictR"RztsetRtupdateR]Rrt	debugflagtdirstaddpathR!Rtdirnametaddt
startswith(5RR^R_R}t_c1t_c2tdirtyc1tdirtyc2tgraftttcaRtm1tm2R?RvRwtdata1tdata2R`Ratbothnewtu1rtu2rtu1utu2utmtaR0R R{trenamedeletetrenamedeletesett
divergesettoftfltbothdivergetbothincompletedivergeRxtboth1tboth2Rytnotetd1td2tinvalidtdirmoveR$R#tdsrctddsttiR6tmovewithdirtdf((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pytmergecopies4s:-$$




&
&$$
		*5




"&


&




	(
	


cC@s)||kr|S|j|j}}y|j|j}}|dkr`t|}n|dkr{t|}nxtr|j|j}}||krt|}q~||krt|}q~||kr|S||ks||ks||kr~tSq~WWntk
r$tSXdS(sFreturn True if f1 and f2 filectx have a common ancestor

    Walk back to common ancestor to see if the two files originate
    from the same file. Since workingfilectx's rev() is None it messes
    up the integer comparison logic, hence the pre-step check for
    None (f1 and f2 can only be workingfilectx's initially).
    N(R)R-RtnextRR
t
StopIteration(tf1tf2Rtg1tg2tf1rtf2r((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt_related6s*		$
c	C@s|j}	|j}
|o4||ko4||	k}t|}|||	j|krg|rgdSd}
t|g}x||||jD]}|j}|j}
|
|kr||krPqqn|j|
|r||d|
<n|
|d|<|
|krqn||
|	j|
kr7dS||
||
}t	|||j
}|r|
|ks|
|jkr|r||d|
<n|
|	kr|
|d|<n{|r||d|
<|d|=||d|
<nKxH|D]@}||	kr||dkst||
g|d|<PqqWdSqW|
|
kr|sU|rf||d|
<qxa|D]V}||	krm||kr|dj|gj
|n|
|g|d|<dSqmWndS(s
    check possible copies of f from m1 to m2

    ctx = starting context for f in m1
    f = the filename to check (as in m1)
    m1 = the source manifest
    m2 = the destination manifest
    base = the changectx used as a merge base
    tca = topological common ancestor for graft-like scenarios
    remotebase = True if base is outside tca::ctx, False otherwise
    limit = the rev number to not search beyond
    data = dictionary of dictionary to store copy data. (see mergecopies)

    note: limit is only an optimization, and there is no guarantee that
    irrelevant revisions will not be limited
    there is no easy way to make this algorithm stop in a guaranteed way
    once it "goes behind a certain revision".
    NR{R RvR|Rw(R:RqR*RRR)R-R+RRRRrt
setdefaulttappend(RlR0RRR}Rt
remotebaseRtdataR?Rt	backwardstgetfctxRtseentoctocrR_tcrtsf((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyRXsb
  
$

 cC@si}|dk	rB|jjddrBt||||}nxft||||jD]G\}}||kr~q`n|j|dkr`|jj||q`q`WdS(s+reproduce copies from fromrev to rev in the dirstate

    If skiprev is specified, it's a revision that should be used to
    filter copy records. Any copies that occur between fromrev and
    skiprev will not be duplicated, even if they appear in the set of
    copies between fromrev and rev.
    RORPtnmaN(RRQRRRXR!RR (RRtfromrevtskiprevtexcludeR$R#((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pytduplicatecopiess*(t
__future__RRRYRRRRRR(R1R9RR@RNRTRXRfRqRzRRRR(((s4/usr/lib/python2.7/dist-packages/mercurial/copies.pyt<module>s$"	U	
	1		#			"	\