-=[ Mr. Bumblebee ]=-
_Indonesia_

Path : /usr/lib/python2.7/dist-packages/bzrlib/
File Upload :
Current File : //usr/lib/python2.7/dist-packages/bzrlib/check.pyc

ó
î:ïNc@@sàdZddlmZddlmZmZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZd
efd„ƒYZdefd
„ƒYZd„Zd„Zeeed„ZdS(sëChecking of bzr objects.

check_refs is a concept used for optimising check. Objects that depend on other
objects (e.g. tree on repository) can list the objects they would be requesting
so that when the dependent object is checked, matches can be pulled out and
evaluated in-line rather than re-reading the same data many times.
check_refs are tuples (kind, value). Currently defined kinds are:

* 'trees', where value is a revid and the looked up objects are revision trees.
* 'lefthand-distance', where value is a revid and the looked up objects are the
  distance along the lefthand path to NULL for that revid.
* 'revision-existence', where value is a revid, and the result is True or False
  indicating that the revision was found/not found.
i(tabsolute_import(terrorstui(tBranch(t
ControlDir(t
NULL_REVISION(tnote(tWorkingTree(tgettexttCheckcB@s#eZdZed„Zd„ZRS(sCheck a repositorycC@s
||_dS(N(t
repository(tselfR
t
check_repo((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyt__init__BscC@st|jƒ‚dS(N(tNotImplementedErrortreport_results(Rtverbose((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyREs(t__name__t
__module__t__doc__tTrueR
R(((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR	?stVersionedFileCheckcB@szeZdZed„Zded„Zd„Zd„Zd„Z	d„Z
d„Zd„Zd	„Z
d
„Zd„ZRS(
s!Check a versioned file repositorycC@s£||_d|_tƒ|_i|_d|_d|_tƒ|_tƒ|_g|_	|j
ƒ|_i|_||_
g|_g|_i|_i|_dS(Ni(R
tchecked_rev_cnttsettghoststmissing_parent_linkstmissing_inventory_sha_cnttmissing_revision_cnttchecked_weavestunreferenced_versionstinconsistent_parentstsupports_rich_roott
rich_rootsttext_key_referencesRt
other_resultst
_report_itemstpending_keyst	ancestors(RR
R((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR
Ns 											cC@s|dkri}n|jjƒtjjƒ|_zÀ|jjtdƒddƒ|j	rÎ|jjtdƒdƒ|j
ƒ|jjtdƒdƒ|jj|ƒ|jjtdƒdƒ|jƒn|jjtd	ƒd
ƒ|ró|j}i}t
ƒ}t
ƒ}t
ƒ}x|jƒD]\}}	|j|	ƒ|\}
}|
dkrk|j|ƒ||<q$|
dkr‡|j|ƒq$|
d
kr£|j|ƒq$td|ƒ‚q$W|jƒj|ƒ}xb|jƒD]T\}
}||d|
f<|
|krÙ|dkrÙt|d
|
f<|j|
ƒqÙqÙW|jƒj|ƒ}x+|D]#}
t|d
|
f<|j|
ƒqMWx|D]}
t|d
|
f<q{Wx[|D]P}t|tƒrÁ|j|ƒnt|tƒrœ|jj|j|ƒƒqœqœWnWd|jjƒ|jj ƒXdS(Ntcheckiischecking revisionsschecking commit contentsischecking file graphsischecking branches and treesittreesslefthand-distancesrevision-existencesunknown ref kind for ref %s(!tNoneR
t	lock_readRt
ui_factorytnested_progress_bartprogresstupdateRRtcheck_revisionst_check_inventoriestcheck_weavesRt	iteritemst
revision_treetaddtAssertionErrort	get_graphtfind_lefthand_distancesRtremovetget_parent_maptFalset
isinstanceRt_checkRR"tappendR&tfinishedtunlock(Rt
callback_refsRtrepotrefst
wanting_itemst	distancest
existencestreftwantlisttkindtvaluetnode_distancestkeytdistancet
parent_maptitem((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR&fsd	
	

				



'
cc@sTtƒ|_x/|D]'\}}||fV|j||ƒqWt|jƒ|_dS(sËCheck revision objects by decorating a generator.

        :param revisions_iterator: An iterator of(revid, Revision-or-None).
        :return: A generator of the contents of revisions_iterator.
        N(Rtplanned_revisionst_check_one_revtlist(Rtrevisions_iteratortrevidtrevision((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyt_check_revisions¤s
cC@sr|jjdƒ}|j|ƒ}|jjjsMd|_x2|D]}q@Wn!|jj|ƒ}t|ƒ|_dS(s:Scan revisions, checking data directly available as we go.N(	R
t_iter_revisionsR(RTt_formatt%revision_graph_can_have_wrong_parentstrevs_with_bad_parents_in_indext#_find_inconsistent_revision_parentsRP(Rtrevision_iteratortthingt
bad_revisions((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR.³s	
		cC@s>|jr|j|ƒnx|jD]}|j|ƒq#WdS(N(Rt_report_repo_resultsR"R(RRtresult((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyRÆs	cC@sttdƒj|jj|jjƒƒttdƒ|jƒttdƒt|jƒƒ|rttdƒt|j	ƒƒn|rÍt|j	ƒrÍx6|j	D](\}}ttdƒj||ƒƒqžWn|j
rïttdƒ|j
ƒn|jrttdƒ|jƒnt|jƒrittdƒt|jƒƒ|rix!|jD]}td	|ƒqLWqint|j
ƒrñttd
ƒt|j
ƒƒ|rñxQ|j
jƒD]=\}}ttdƒ|ƒx|D]}td|ƒqÐWqªWqñnt|jƒrpttd
ƒt|jƒƒ|rpxH|jD]:}|\}}}	}
ttdƒj|||	|
ƒƒq,Wqpn|jrãttdƒt|jƒƒ|rãxB|jD]4}|\}}}
ttdƒj|||
ƒƒq¥Wqãnx|jD]}t|ƒqíWdS(Ns!checked repository {0} format {1}s
%6d revisionss%6d file-idss%6d unreferenced text versionss$unreferenced version: {{{0}}} in {1}s(%6d revisions are missing inventory_sha1s+%6d revisions are mentioned but not presents%6d ghost revisionss      %ss)%6d revisions missing parents in ancestrys'      %s should be in the ancestry for:s       * %ss%6d inconsistent parentss?      * {0} version {1} has parents {2!r} but should have {3!r}s:%6d revisions have incorrect parents in the revision indexs<       {0} has wrong parents in index: {1!r} should be {2!r}(RRtformatR
tuser_urlRVRtlenRRRRRRtitemsRRXR#(RRtfile_idtrevision_idtghosttlinktlinkerstlinkertinfot
found_parentstcorrect_parentsRMt
index_parentstactual_parents((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR]Ìsf		
	

			cC@sç|j|kr@|jjtdƒj|j|ƒƒ|j}n|jj|ƒ|jj|ƒx3|j	D](}||jkrj|jj|ƒqjqjWt
|j	ƒp«tf|j|<|j
|d|fd|jƒ|jd7_dS(s™Cross-check one revision.

        :param rev_id: A revision id to check.
        :param rev: A revision or None to indicate a missing revision.
        s9Mismatched internal revid {{{0}}} and index revid {{{1}}}tinventoriest	inventoryiN(RdR#R<RR_RNR3Rtdiscardt
parent_idsttupleRR%tadd_pending_itemtinventory_sha1R(Rtrev_idtrevtparent((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyROs	
cC@s{|jj|ƒ}|ra||dkrw|jjtdƒj||||d|dƒƒqwn|||f|j|<dS(sKAdd a reference to a sha1 to be cross checked against a key.

        :param referer: The referer that expects key to have sha1.
        :param key: A storage key e.g. ('texts', 'foo@bar-20040504-1234')
        :param kind: revision/inventory/text/map/signature
        :param sha1: A hex sha1 or None if no sha1 is known.
        isQMultiple expected sha1s for {0}. {{{1}}} expects {{{2}}}, {{{3}}} expects {{{4}}}iN(R$tgetR#R<RR_(RtrefererRJRGtsha1texisting((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyRss$cC@s8g}tjjƒ}z|j|ƒWd|jƒXdS(s6Check all the weaves we can get our hands on.
        N(RR*R+t
_check_weavesR=(Rt	weave_idststorebar((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR0.s
c
C@sN|jdddƒ|jjjr=|jjd|jƒ}n!|jjd|jd|jƒ}|jddƒ|j|jjƒ}|j	|_
|\}}|jƒ}x|D]ˆ\}\}}|d}	|d}
tg|D]}|d^qÞƒ}tg|D]}|d^qƒ}|j
j|
|	||fƒq®W|jj|ƒdS(	Ns
text-indexiiR%R!s
file-graphiiÿÿÿÿ(R-R
RVtfast_deltast_get_versioned_file_checkerR%R!tcheck_file_version_parentsttextstfile_idsRRbRrRR<R(
RR~t
weave_checkerR^tbad_parentstunused_versionsttext_keytstored_parentsRktweave_idRdRwt
weave_parents((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyR|8s*	

##	cC@sh|jr|jdkrdS|j|jf}|jj|tƒ|j|jkrdt|j|<ndS(Nt(	R tnameRcRSR!t
setdefaultR9RdR(RtinvtentryRJ((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyt!_add_entry_to_text_key_referencesRsN(RRRRR
R(R&RTR.RR]RORsR0R|R(((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyRIs>				7			
	cC@sqttdƒ|jfƒ|jƒ|j|ƒ|jƒ}x-|D]%}|j|gƒ}|j|ƒqDWdS(s¼Scan a branch for refs.

    :param branch:  The branch to schedule for checking.
    :param needed_refs: Refs we are accumulating.
    :param to_unlock: The unlock list accumulating.
    sChecking branch at '%s'.N(RRtbaseR)R<t_get_check_refsR(tbranchtneeded_refst	to_unlocktbranch_refsREtreflist((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pytscan_branch[s


cC@s“|dk	r"|j|jkr"dSttdƒ|jfƒ|jƒ|j|ƒ|jƒ}x-|D]%}|j|gƒ}|j|ƒqfWdS(sScan a tree for refs.

    :param base_tree: The original tree check opened, used to detect duplicate
        tree checks.
    :param tree:  The tree to schedule for checking.
    :param needed_refs: Refs we are accumulating.
    :param to_unlock: The unlock list accumulating.
    NsChecking working tree at '%s'.(R(tbasedirRRR)R<R’R(t	base_treettreeR”R•t	tree_refsRER—((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyt	scan_treeks	


cC@s•ytj|ƒ\}}}}Wn"tjk
rCd}}}nXg}	i}
z"|dk	r‡|r{td||
|	ƒn|j}n|dk	r®|dkr®|j}q®n|dk	r&|jƒ|	j	|ƒ|j
dtƒ}t}|sõ|rwx|D]t}|rWy|j
jƒ}
t}Wntjtjfk
r@qWXt||
|
|	ƒn|rüt||
|	ƒqüqüWn|r—|r—ttdƒƒn|rÃ|dkrÃ|rÃttdƒƒn|sÕ|sÕ|rq|røttdƒ|jfƒn|jdd|
d|ƒ}|j|ƒqqnK|r?ttdƒƒn|rXttdƒƒn|rqttdƒƒnWdx|	D]}|jƒq|WXdS(	sžCheck multiple objects.

    If errors occur they are accumulated and reported as far as possible, and
    an exception raised at the end of the process.
    tusings&No branch found at specified location.s,No working tree found at specified location.sChecking repository at '%s'.R?Rs*No repository found at specified location.N(Rt)open_containing_tree_branch_or_repositoryRtNotBranchErrorR(RR“R
R)R<t
find_branchesRR9tbzrdirtopen_workingtreetNotLocalUrlt
NoWorkingTreeR˜RRR`R&RR>(tpathRt	do_branchtdo_repotdo_treeRšR“R@trelpathR•R”tbranchestsaw_treeR›R^R[((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyt
check_dwimsb




	
N(Rt
__future__RtbzrlibRRt
bzrlib.branchRtbzrlib.controldirRtbzrlib.revisionRtbzrlib.traceRtbzrlib.workingtreeRtbzrlib.i18nRtobjectR	RR˜RR9R­(((s0/usr/lib/python2.7/dist-packages/bzrlib/check.pyt<module>0s
ÿ		

Copyright © 2017 || Recoded By Mr.Bumblebee