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/changegroup.pyc

Xc@@s^ddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZddlm
Z
mZmZmZmZmZmZdZdZd	Zd
ZdZdZd
ZdZedZdefdYZdefdYZ de fdYZ!defdYZ"defdYZ#de#fdYZ$de$fdYZ%ie#efd6e$e fd6e%e!fd 6Z&d!Z'd"Z(d#Z)d$Z*ed%Z+ed&Z,d'Z-e.d(Z/e.d)Z0dd*Z1edd+Z2edd,Z3edd-Z4d.Z5d/Z6dS(0i(tabsolute_importNi(t_(thextnullrevtshort(t	branchmaptdagutilt	discoveryterrortmdifftphasestutilt20s20s20s20st20s20s20s20s20ss>20s20s20s20s20sHcC@sM|j|}t||krItjtdt||fn|S(s=read n bytes from stream.read and abort if less was availables5stream ended unexpectedly (got %d bytes, expected %d)(treadtlenRtAbortR(tstreamtnts((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytreadexactly$s
cC@sht|d}tjd|d}|dkrW|rStjtd|ndSt||dS(s-return the next chunk from stream as a stringis>lisinvalid chunk length %dt(RtstructtunpackRRR(Rtdtl((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgetchunk-scC@stjd|dS(s*return a changegroup chunk header (string)s>li(Rtpack(tlength((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytchunkheader7scC@stjddS(sBreturn a changegroup chunk header (string) for a zero-length chunks>li(RR(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
closechunk;scC@sd}d}x^|D]V}|dkr/d}Pn|dkrL||d7}q|dkr||d7}qqW|dkrd|}n|dkrd|}n|S(s:logic to combine 0 or more addchangegroup results into oneiii((tresultstchangedheadstresulttret((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytcombineresults?s


cC@sd}d}z|rE|r0|j|d}qut|dd}n0tjdddd\}}tj|d}|}x|D]}|j|qWd}|SWd|dk	r|jn|dk	r|r|r|j|qtj|nXdS(sWrite chunks to a file and return its filename.

    The stream is assumed to be a bundle file.
    Existing files will not be overwritten.
    If no filename is specified, a temporary file is created.
    twbitprefixs
hg-bundle-tsuffixs.hgN(	tNonetopenttempfiletmkstemptostfdopentwritetclosetunlink(tuitchunkstfilenametvfstfhtcleanuptfdtc((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytwritechunksRs(

tcg1unpackercB@seZdZeZejeZdZdZ	ddZdZdZ
dZdZdZd	Zd
ZdZdZd
ZdZdZdZeejddZRS(sUnpacker for cg1 changegroup streams.

    A changegroup unpacker handles the framing of the revision data in
    the wire format. Most consumers will want to use the apply()
    method to add the changes from the changegroup to a repository.

    If you're forwarding a changegroup unmodified to another consumer,
    use getchunks(), which returns an iterator of changegroup
    chunks. This is mostly useful for cases where you need to know the
    data stream has ended by observing the end of the changegroup.

    deltachunk() is useful only if you're applying delta data. Most
    consumers should prefer apply() instead.

    A few other public methods exist. Those are used only for
    bundlerepo and some debug commands - their use is discouraged.
    t01icC@s|dkrd}n|tjkr@tjtd|n|dkrUd}ntj|||_||_|p}i|_d|_	dS(NtUNs#unknown stream compression type: %stBZt_truncatedBZ(
R'Rt
decompressorsRRRt_streamt_typetextrastcallback(tselfR4talgRA((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt__init__s	
		cC@s
|jdk	S(N(R@R'(RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
compressedscC@s|jj|S(N(R?R(RCR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRscC@s|jj|S(N(R?tseek(RCtpos((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRGscC@s
|jjS(N(R?ttell(RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRIscC@s
|jjS(N(R?R.(RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR.scC@sxt|jd}tjd|d}|dkrZ|rVtjtd|ndS|jrp|jn|dS(Nis>lisinvalid chunk length %d(RR?RRRRRRB(RCRR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt_chunklengths	
cC@siS(s*v10 does not have a changelog header chunk((RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytchangelogheaderscC@siS(s)v10 does not have a manifest header chunk((RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytmanifestheaderscC@s3|j}|siSt|j|}i|d6S(sBreturn the header of the filelogs chunk, v10 only has the filenameR2(RJRR?(RCRtfname((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
filelogheaders
c	C@sI|\}}}}|dkr'|}n|}d}||||||fS(Ni(R'(	RCtheadertupletprevnodetnodetp1tp2tcst	deltabasetflags((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt_deltaheaders	cC@s|j}|siSt|j|j}tj|j|}t|j||j}|j||\}}}}	}
}i|d6|d6|d6|
d6|	d6|d6|d6S(NRQRRRSRTRUtdeltaRV(RJRR?tdeltaheadersizeRRtdeltaheaderRW(RCRPRt
headerdatatheaderRXRQRRRSRURTRV((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
deltachunks$cc@sd}d}x||jkrt}|d7}xtrt|}|sl|rh|dkrh|d7}nPnt}tt|Vd}x2|t|kr|d}|||!V|}qWq1WtVqWdS(s"returns all the chunks contains in the bundle

        Used when you need to forward the binary stream to a file or another
        network API. To do so, it parse the changegroup data, otherwise it will
        block in case of sshrepo because it don't know the end of the stream.
        iiiiNi(t_grouplistcounttTrueRtFalseRRR(RCtcountt
emptycounttemptytchunkRHtnext((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt	getchunkss&
	

cC@s^|td||_|j|jj||||jjtddd|_dS(Nt	manifests(RRBRLtmanifesttaddgroupR0tprogressR'(RCtrepotrevmapttrptprogt
numchanges((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt_unpackmanifestss

c @sjfd}fd}d}	}
}zjdj|tj|g[}|jjd|}|jjd|}jddt|jj	j
|jtj
|}
jjtd	td
tffdY}|td||_tfd
}|jj|||
d|}t|p|stjtdnt}|}	jjtdd$d$|_jjtd|j||
||	i}jjdddtrxt|D]t}j	jj	j |d}j!|j"}x6|j#D](\}}|j|tj$|qWq7Wnjjtdt%|||
|\}}||7}|
|7}
d}rhj}t|t}x:|D]/}|kr2|j&r2|d8}q2q2Wnd}|rtd|}njjtd|	||
|fj'|	dkr~d|jkr t(j |jd<t(j |d|jd<t)|jnEt)|jt(j d<t(j |dd<jddtngt|D]}j |^qj*}|d%kr|rt+j,|t+j-|q=t+j,|t+j.|t+j/|t+j.n%|dkr=t+j/||n|	dkr|dkr~jj0dt1j2j3d nfd!|j4d"fd#nWd$QXWd$jj5X|dkr|dS|dSd$S(&sAdd the changegroup returned by source.read() to this repo.
        srctype is a string like 'push', 'pull', or 'unbundle'.  url is
        the URL of the repo where this changegroup is coming from.

        Return an integer summarizing the change to this repo:
        - nothing changed or no source: 0
        - more heads than before: 1+added heads (2..n)
        - fewer heads than before: -1-removed heads (-2..-n)
        - number of heads stays the same: 1
        c@s$jjdt|tS(Nsadd changeset %s
(R0tdebugRR(tx(tclRk(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytcsmapsc@s
j|S(N(trev(Rr(Rs(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRlsis
tsourceturltprechangegrouptthrowsadding changesets
Rnc@s eZdZfdZRS(cS@s||_||_d|_dS(Ni(t_stept_totalt_count(RCtstepttotal((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRE-s		c@sAjj|j|jdtdd|j|jd7_dS(NtunitR1R~i(R0RjRzR|RR{(RC(Rk(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt__call__1s(t__name__t
__module__RER((Rk(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRn,s	t
changesetsc@sj|j|dS(N(tupdatet	readfiles(RsRQ(tefiles(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytonchangelog8st
addrevisioncbs!received changelog group is emptysadding manifests
tservertvalidatetdefaultsadding file changes
iRs (%+d heads)s2added %d changesets with %d changes to %d files%s
RQt	node_lasttpretxnchangegrouptpushtservetstripsupdating the branch cache
tservedc
@stkrdSjdxAD]9}j}t||d<|d=jd|q-WgjD]}|krw|^qw}jjddtdjg|D]}t|d ^qdS(NtchangegroupRQRtincomings$%s incoming changes - new heads: %s
s, i(RthooktcopyRtheadsR0tlogtjoin(RtargsthtnewheadsR7(taddedtclstartthookargstoldheadsRk(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytrunhookss
	schangegroup-runhooks-%020ic@s
jS(N(t
_afterlock(ttr(RkR(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt<lambda>sN(RR(6t
unfilteredttransactionRRthidepasswordRt
setdefaultRR_t	changelogtdelayupdateRtweakreftproxyR0tstatusRRtobjectRBtsetRKRiRRRjR'Rpt
configboolR`txrangeRRQtmanifestlogt	readdeltat	iteritemstaddt_addchangegroupfilestclosesbranchtinvalidatevolatilesetsRtdictt
publishingR
tadvanceboundarytpublictdrafttretractboundaryRqRtupdatecachetfilteredtaddpostclosetflush( RCRktsrctypeRwtemptyokttargetphaset
expectedtotalRtRlRtfilest	revisionsRRmRnRt
srccontenttclendt	needfilestcsettmfnodetmfesttfRtnewrevstnewfilestdhRRthtexttrR((RRsRRRRRkRs9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytapplys	
		
	
		'



 +

 N(RRt__doc__t_CHANGEGROUPV1_DELTA_HEADERRZRtcalcsizeRYtversionR^R'RERFRRGRIR.RJRKRLRNRWR]RfRpR`R
RR(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR9ts*													 	
tcg2unpackercB@s2eZdZeZejeZdZdZ	RS(sUnpacker for cg2 streams.

    cg2 streams add support for generaldelta, so the delta header
    format is slightly different. All other features about the data
    remain the same.
    t02c	C@s1|\}}}}}d}||||||fS(Ni((	RCRORPRQRRRSRURTRV((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRWs(
RRRt_CHANGEGROUPV2_DELTA_HEADERRZRRRYRRW(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRs
tcg3unpackercB@sAeZdZeZejeZdZdZ	dZ
dZRS(sUnpacker for cg3 streams.

    cg3 streams add support for exchanging treemanifests and revlog
    flags. It adds the revlog flags to the delta header and an empty chunk
    separating manifests and files.
    t03ic	C@s.|\}}}}}}||||||fS(N((	RCRORPRQRRRSRURTRV((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRWsc	C@stt|j|||||xwt|jiD]c}|d}|jjd||jj|}|j	|||s5t
jtdq5q5WdS(NR2sadding %s revisions
s"received dir revlog group is empty(
tsuperRRptiterRNR0RqRhtdirlogRiRRR(	RCRkRlRmRnRot	chunkdataRR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRps
(RRRt_CHANGEGROUPV3_DELTA_HEADERRZRRRYRR^RWRp(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRs	theaderlessfixupcB@seZdZdZRS(cC@s||_||_dS(N(t_ht_fh(RCR4R((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyREs	cC@sp|jr`|j| |j|}|_t||kr\|t|j|t|7}n|St|j|S(N(RRRR(RCRR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRs	#(RRRER(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRs	t	cg1packercB@seZeZdZddZdZdZdZ	ddZ
dZdZdZ
d	Zd
ZdZdZd
ZdZRS(R:cC@s|dkrt}n||_|jjddd}|dkrNd}ntj|}||_||_|jj	|_
|jjjr|jjjr|jjj
|_nd|_dS(sGiven a source repo, construct a bundler.

        bundlecaps is optional and can be used to specify the set of
        capabilities which can be used to build the bundle.
        tbundletreordertautocS@sdS(N(R'(R((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRsN(R'Rt_bundlecapsR0tconfigRt	parseboolt_repot_reorderRjt	_progresstverboset	debugflagtnotet_verbosenote(RCRkt
bundlecapsR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyREs				cC@stS(N(R(RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR.
scC@stt||S(N(RR(RCRM((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
fileheadersc@s}jr|jdks!|jrStj}|jtfd|DStg|D]}j|^q]SdS(s7Sort nodes for change group and turn them into revnums.c3@s|]}j|VqdS(N(Ru(t.0R(trevlog(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pys	<genexpr>sN(	t
_generaldeltaRR'Rt	revlogdagt	linearizeRtsortedRu(RCRtnodelisttlookuptdagR((Rs9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
_sortgroups!#cc@sMt|dkr!|jVdS|j|||}|j|dd}|jd|t|d}td}xtt|dD]}	|dk	r|j||	dd|d|n||	||	d}
}||j	|}x%|j
|||
|D]}
|
VqWqW|dk	r>|j|dn|jVdS(spCalculate a delta group, yielding a sequence of changegroup chunks
        (strings).

        Given a list of changeset revs, return a set of deltas and
        metadata corresponding to nodes. The first delta is
        first parent(nodelist[0]) -> nodelist[0], the receiver is
        guaranteed to have this parent as it has all history before
        these changesets. In the case firstparent is nullrev the
        changegroup starts with a full revision.

        If units is not None, progress detail will be generated, units specifies
        the type of revlog that is touched (changelog, manifest, etc.).
        iNitbundlingRR~(RR.Rt
parentrevstinsertRRR'RRQtrevchunk(RCRRRtunitstrevstpR~tmsgbundlingRtprevtcurrtlinknodeR7((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgroups$#
cC@sB|j|j}}g|D]$}||||kr|^qS(N(Rutlinkrev(RCRtmissingt
commonrevstrrtrlR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytpruneGscc@sH|s
tx4|j||jj|dtdD]}|Vq5WdS(s.Pack flat manifests into a changegroup stream.RRgN(tAssertionErrorRRRhR(RCtdirtmfnodestlookuplinknodeRd((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt_packmanifestsKs
cC@sdS(NR((RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt_manifestsdoneRsc
#@s|j}|jiiitfd}|jtdd}x>|j||dtdD]}|t|7}|VqW|jtd||o|j}|od|jk}x(|j	||D]}|VqWj
tfd|D|sDfd	}	njfd
}	x%|j|	||D]}|VqxW|j
V|r|jddt|dd
|ndS(s0yield a sequence of changegroup chunks (strings)c@sNj|}t|<|d}j||j|d|S(Nii(RRRR(RrR7R(tchangedfilesRst
clrevordertmfs(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytlookupclbs
s%uncompressed size of bundle content:
iRRs%8.i (changelog)
ttreemanifestc3@s|]}j|VqdS(N(Ru(RRr(Rs(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pys	<genexpr>sc@sj|iS(N(tget(tunusedRM(tfnodes(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt	linknodessc@sH|j|jfd|D}tfd|DS(Nc3@s!|]}||fVqdS(N((RR(tllr(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pys	<genexpr>sc3@s9|]/\}}|kr||fVqdS(N((RRtlr(tclntclrevstfln(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pys	<genexpr>s(RRQR(t
filerevlogRMR(R#R$(R%R!s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR s		toutgoingRQRvN(RRRRRRRRtrequirementstgeneratemanifeststclearRQt
generatefilesR.RR(
RCRtclnodestfastpathlinkrevRvRkRtsizeRdR ((RRsR#RR$RRs9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgenerateUs>			(		
	
	c
#@s|j}|jjid6fd}d}xrt}	|	}
|j|	|
|}|	s|rx;|j|	|||	D]}|t|7}|VqWn|	=qIW|jtd||j	VdS(NRc@s9rstjSfd}|S(Nc@s|}j|}x|jD]\}}}|dkr|d}j|i}|j||}||kr|||<qq0|}	j|	i}
|
j||}||kr0||
|<q0q0W|S(sPCallback for looking up the linknode for manifests.

                Returns the linkrev node for the specified manifest.

                SIDE EFFECT:

                1) fclnodes gets populated with the list of relevant
                   file nodes if we're not using fastpathlinkrev
                2) When treemanifests are in use, collects treemanifest nodes
                   to send

                Note that this means manifests must be completely sent to
                the client before you can trust the list of files and
                treemanifests to send.
                ttt/(treadshallowfasttiterentriesR(RrtclnodetmdataRRtfltsubdirt
tmfclnodest	tmfclnodeRtfclnodestfclnode(RRRRttmfnodes(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytlookupmflinknodes
(Rt__getitem__(RR=(RRR-RRR<(Rs9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytmakelookupmflinknodes

 is%8.i (manifests)
(
RRhRtminRRRRRR(
RCRRR-RRRkR?R.RtnodestprunednodesRr((RRR-RRR<s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR)s"	
'	

c
#@sl|j}|j}td}t|}td}	x"tt|D]\}
}|j|}|stjtd|n|||fd}
|j	||}|rI|||
dd|d|	d||j
|}t|}|Vx2|j|||
D]}|t|7}|VqW|jtd	||fqIqIW||ddS(
NRRsempty or missing revlog for %sc@s|S(N((Rr(tlinkrevnodes(s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
lookupfilelogsititemRR~s	%8.i  %s
(RRRRt	enumerateRtfileRRRRRRR'(RCRR RRvRkRjRR~tmsgfilestiRMR&RDt	filenodesRR.Rd((RCs9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR+s.			$cC@s|S(N((RCRRuRRRSR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytdeltaparentscc@s|j|}|j|\}}|j|||||}d}	|j|sc|j|ry|j|}
Wntjk
r}|j}
nX|tkrt	j
t|
}	q+|j|}t	j
|t|
}	nE|tkr|j|}
t	j
t|
}	n|j||}
|j|\}
}|j|}|j|}|j||
||||}||	7}t|t|
}t|V|V|
VdS(NR(RQRRKt
iscensoredtrevisionRtCensoredNodeErrort	tombstoneRR	ttrivialdiffheaderRtrawsizetreplacediffheadertrevdifftparentsRVtbuilddeltaheaderR(RCRRuRR
RQRRRStbaseR%RXtetbaselentp1ntp2ntbasenodeRVtmetaR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRs4

cC@stj|j||||S(N(RRRZ(RCRQRYRZR[R
RV((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRU$sN(RRRRZRR'RER.RRRRRRR/R)R+RKRRU(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRs 			
)				O	?	 		t	cg2packercB@s2eZdZeZddZdZdZRS(RcC@s8tt|j|||jdkr4t|_ndS(N(RR]RERR'R`(RCRkR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRE-scC@sY|j|}|tkr(|jr(|S|tkr8tS||||fkrQ|S|SdS(N(RKRtstoredeltachains(RCRRuRRRSRtdp((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRK5scC@stj|j|||||S(N(RRRZ(RCRQRYRZR[R
RV((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRUJsN(	RRRRRZR'RERKRU(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR])s
	t	cg3packercB@s/eZdZeZdZdZdZRS(Rcc@s[|r|j|Vnx=|j||jjj||dtdD]}|VqHWdS(NRRg(RRRRhRR(RCRRRRd((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRRs
cC@s
|jS(N(R.(RC((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRYscC@s"tj|j||||||S(N(RRRZ(RCRQRYRZR[R
RV((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRU\s(RRRRRZRRRU(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyR`Ns
		R:RRcC@sWttj}|jd|jddsC|jddrS|jdn|S(NRtexperimentaltchangegroup3R(Rt
_packermaptkeystdiscardRR(R0tversions((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytallsupportedversionsgs
cC@s2t|j}d|jkr.|jdn|S(NRR(RgR0R(R(RkRf((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytsupportedincomingversionspscC@sLt|j}d|jkrH|jd|jd|jdn|S(NRR:RR(RgR0R(ReR(RkRf((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytsupportedoutgoingversionsws

cC@sAt|}d|jkr+|jdn|s7tt|S(NtgeneraldeltaR:(RiR(ReRR@(RkRf((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytsafeversions
cC@s-|t|kstt|d||S(Ni(RiRRc(RRkR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt
getbundlerscC@st|d||d|S(NiRA(Rc(RR4RDRA((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgetunbundlerscC@s|jjs|dkr;|jjtdt|n|jjr|jjdx+|D] }|jjdt|q^WndS(NRs%d changesets found
slist of changesets:
s%s
(R0RRRRRRqR(RkRARvRQ((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt_changegroupinfos#
c	C@s|j}|j}|j}|j}|j|p[|jdko[|t|jk}|j	ddt
d|t||||j||||S(NtpreoutgoingRyRv(
RtcommonR
tmissingheadstsortt
filternameR'RRRR_RnR/(	RkR'tbundlerRvtfastpathRtcsetsRR-((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgetsubsetraws			
'cC@sGt|||||}t|jtj|dit|jd6S(Ntclcount(RwRmRRtchunkbufferR'RR
(RkR'RtRvRutgengroup((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt	getsubsetscC@s=tj|d|d|}t||}t||||S(sCompute a changegroup consisting of all the nodes that are
    descendants of any of the roots and ancestors of any of the heads.
    Return a chunkbuffer object whose read() method will return
    successive changegroup chunks.

    It is fairly complex as determining which filenodes and which
    manifest nodes need to be included for the changeset to be complete
    is non-trivial.

    Another wrinkle is doing the reverse, figuring out which changeset in
    the changegroup a particular filenode or manifestnode belongs to.
    tmissingrootsRq(RR'RlR{(RktrootsRRvRR'Rt((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytchangegroupsubsets
cC@s2|js
dSt|||}t||||S(sLike getbundle, but taking a discovery.outgoing as an argument.

    This is only implemented for local repos and reuses potentially
    precomputed sets in outgoing. Returns a raw changegroup generator.N(R
R'RlRw(RkRvR'RRRt((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgetlocalchangegroupraws	cC@s2|js
dSt|||}t||||S(sLike getbundle, but taking a discovery.outgoing as an argument.

    This is only implemented for local repos and reuses potentially
    precomputed sets in outgoing.N(R
R'RlR{(RkRvR'RRRt((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgetlocalchangegroups	cC@st|||d|d|S(s6Like changegroupsubset, but returns the set difference between the
    ancestors of heads and the ancestors common.

    If heads is None, use the local heads. If common is None, use [nullid].

    The nodes in common might not all be known locally due to the way the
    current discovery protocol works.
    RR(R(RkRvR'RR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pytgetchangegroups
cC@st|||j|S(N(R~R(Rkt	basenodesRv((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRscC@sDd}d}xt|jiD]t}|d7}|d}	|jjd|	|jjtd|dtdd||j|	}
t|
}y1|
j|||st	j
tdnWn/t	jk
r}t	j
td	|nX|t|
|7}|	|kr||	}
x]t|t|
D]F}|
j
|}||
krg|
j|q6t	j
td
q6W|
s||	=qqqW|jjtddx|jD]y\}	}
|j|	}
x[|
D]S}y|
j|Wqt	jk
r1t	j
td|	t|fqXqWqW||fS(NiiR2sadding %s revisions
RRR~s#received file revlog group is emptys#received delta base is censored: %ss#received spurious file revlog entrys+missing file data for %s:%s - run hg verify(RRNR0RqRjRRGRRiRRtCensoredBaseErrorRRQtremoveR'RRutLookupErrorR(RkRvRlRmt
expectedfilesRRRRRR6toRWtneedstnewR((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyRsJ

$

	"(7t
__future__RR+RR)Rti18nRRQRRRRRRRRR	R
RRRRRRRRR#R'R8RR9RRRRR]R`RcRgRhRiRkRlRmRnR`RwR{R~RRRRR(((s9/usr/lib/python2.7/dist-packages/mercurial/changegroup.pyt<module>s\4
			
			"H8%