-=[ Mr. Bumblebee ]=-
_Indonesia_

Path : /usr/lib/python2.7/dist-packages/mercurial/
File Upload :
Current File : //usr/lib/python2.7/dist-packages/mercurial/merge.pyc


\,Tc@sjddlZddlmZmZmZmZddlmZddlm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZejZejZdZdefdYZdZd	Zd
ZdZdZd
Z dZ!e"dZ#dZ$dZ%e"e&e"dZ'dS(iN(tnullidtnullrevthextbin(t_(tobsoletecCs.|jd}|d |d}dj|S(Ntii(tsplittjoin(tdatatbits((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt
_droponodest
mergestatecBseZdZdZdZdZdddZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZddZRS(s2track 3-way merge state of individual files

    it is stored on disk when needed. Two file are used, one with an old
    format, one with a new format. Both contains similar data, but the new
    format can store new kind of field.

    Current new format is a list of arbitrary record of the form:

        [type][length][content]

    Type is a single character, length is a 4 bytes integer, content is an
    arbitrary suites of bytes of length `length`.

    Type should be a letter. Capital letter are mandatory record, Mercurial
    should abort if they are unknown. lower case record can be safely ignored.

    Currently known record:

    L: the node of the "local" part of the merge (hexified version)
    O: the node of the "other" part of the merge (hexified version)
    F: a file to be merged entry
    smerge/statesmerge/state2cCs ||_t|_|jdS(N(t_repotFalset_dirtyt_read(tselftrepo((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt__init__3s		cCs_i|_d|_d|_|r6||_||_ntj|jjdtt	|_
dS(Ntmerge(t_statetNonet_localt_othertshutiltrmtreeR
RtTrueRR(Rtnodetother((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytreset8s				cCsi|_d|_d|_|j}x|D]\}}|dkrXt||_q.|dkrvt||_q.|dkr|jd}|d|j|d<q.|js.tj	t
d|q.q.Wt|_dS(	sAnalyse each record content to restore a serialized state from disk

        This function process "record" entry produced by the de-serialization
        of on disk file.
        tLtOtFRiis"unsupported merge state record: %sN(
RRRRt_readrecordsRRtislowertutiltAbortRRR(RtrecordstrtypetrecordR
((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyRBs 			c	CsK|j}|j}t}x^|D]V}|ddkrN|j|q(|ddkr(|jdt|dfq(q(Wx|D]}||kr|jd
jd}|jd|j	fxmt
|D]_\}}|ddkr|djd}|jdd	|ddj
|f||<qqW|SqW|Sd
S(sRead merge state from disk and return a list of record (TYPE, data)

        We read data from both v1 and v2 files and decide which one to use.

        V1 has been used by version prior to 2.9.1 and contains less data than
        v2. We read both versions and check if no data in v2 contradicts
        v1. If there is not contradiction we can safely assume that both v1
        and v2 were written at the same time and use the extract data in v2. If
        there is contradiction we ignore v2 content as we assume an old version
        of Mercurial has overwritten the mergestate file and left an old v2
        file around.

        returns list of record [(TYPE, data), ...]iRR!iiR RitN(t_readrecordsv1t_readrecordsv2tsettaddRR
RtparentstappendRt	enumerateRtinsertR(	Rt	v1recordst	v2recordstoldv2trectmctxtidxtrR
((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyR"Ys&	
$
$cCsg}y}|jj|j}xWt|D]I\}}|dkr]|jd|d fq+|jd|d fq+W|jWn+tk
r}|jtjkrqnX|S(sread on disk merge state for version 1 file

        returns list of record [(TYPE, data), ...]

        Note: the "F" data from this file are one entry short
              (no "other file node" entry)
        iRiR!(	R
topenertstatepathv1R0R/tclosetIOErrorterrnotENOENT(RR&tftitlterr((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyR*s
c
Csg}y|jj|j}|j}d}t|}xz||kr||}|d7}td|||d!d}|d7}||||!}||7}|j||fq?W|jWn+tk
r}	|	j	t	j
krqnX|S(shread on disk merge state for version 2 file

        returns list of record [(TYPE, data), ...]
        iis>Ii(R
R9tstatepathv2treadtlent_unpackR/R;R<R=R>(
RR&R?R	tofftendR'tlengthR(RB((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyR+s&




cCsLt|jpKt|jpK|jjj|jpK|jjj|jS(sWhether mergestate is active.

        Returns True if there appears to be mergestate. This is a rough proxy
        for "is a merge in progress."
        (tboolRRR
R9texistsR:RC(R((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytactivescCs|jrg}|jdt|jf|jdt|jfx@|jjD]/\}}|jddj|g|fqWW|j|t	|_ndS(s*Write current state on disk (if necessary)RR R!RN(
RR/RRRRt	iteritemsRt
_writerecordsR(RR&tdtv((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytcommits	'
cCs|j||j|dS(s,Write current state on disk (both v1 and v2)N(t_writerecordsv1t_writerecordsv2(RR&((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyRNs
cCs|jj|jd}t|}|j}|ddksFt|jt|jdx:|D]2\}}|dkrg|jdt	|qgqgW|j
dS(s/Write current state on disk in a version 1 filetwiRs
R!s%s
N(R
R9R:titertnexttAssertionErrortwriteRRRR;(RR&R?tirecordstlrecordsR'R	((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyRRscCs|jj|jd}x^|D]V\}}t|dksCtdt|}|jt||t||qW|jdS(s/Write current state on disk in a version 2 fileRTis>sI%isN(R
R9RCRERWRXt_packR;(RR&R?tkeyR	tformat((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyRSs&cCstj|jj}|jjjd||jd||j|jt|j	|jt|j	|j
g|j|<t|_
dS(s/add a new (potentially?) conflicting file the merge state
        fcl: file context for local,
        fco: file context for remote,
        fca: file context for ancestors,
        fd:  file path of the resulting merge.

        note: also write the local version to the `.hg/merge` directory.
        smerge/tuN(R$tsha1tpatht	hexdigestR
R9RXR	RtfilenodetflagsRRR(Rtfcltfcotfcatfdthash((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyR-s	 cCs
||jkS(N(R(Rtdfile((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt__contains__scCs|j|dS(Ni(R(RRi((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt__getitem__scCstt|jS(N(RUtsortedR(R((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt__iter__scCs
|jjS(N(Rtkeys(R((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytfilesscCs||j|d<t|_dS(Ni(RRR(RRitstate((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytmarksccs<x5|jjD]$\}}|ddkr|VqqWdS(s%Obtain the paths of unresolved files.iR^N(Rtitems(RR?tentry((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt
unresolvedsc	Cs||dkrdS|j|}|\}}}}}	}
}}|j|j}
||}|
|
}|jj|d|	}|j}|j}d|||krd|||kr|jtkr|jjjt	d|q||kr|}qn|jj
d|}|jj||j||j
tj|j|j||||d|}|d	kr|j|=t|_n|s|j|dn|S(
s)rerun merge process for file path `dfile`R8itfileidtxRAs#warning: cannot merge flags for %s
smerge/tlabelsN(RR
RtfilectxRcRRtuitwarnRR9twwriteRDR;t	filemergeRRRRRq(RRitwctxRwt
stateentryRpRhtlfiletafiletanodetofiletonodeRctoctxtfcdReRftflotflaR?R8((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytresolves6


(
!	
N(t__name__t
__module__t__doc__R:RCRRRRR"R*R+RLRQRNRRRSR-RjRkRmRoRqRtR(((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyRs,	
		*															cCss|jj|ortjj|j|or|jjj|or|jj	||jkor||j
||S(N(tdirstatet_ignoretosR`tisfiletwjointwopenertaudittcheckt	normalizetcmp(RR}R6R?((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt_checkunknownfile,s
cCst}xU|D]M}||kr
t||||r
t}|jjjtd|q
q
W|r|tjtdndS(s<check for collisions between unknown files and files in mctxs%s: untracked file differs
sLuntracked files in working directory differ from files in requested revisionN(	RRRR
RyRzRR$R%(RR}R6terrorR?((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt
_checkunknown3s
!$cCsg}g}}|r|}nx9|jD]+}||kr,|j|ddfq,q,W|sx<|jD]+}||krn|j|ddfqnqnWn||fS(s
    Forget removed files

    If we're jumping between revisions (as opposed to merging), and if
    neither the working directory nor the target rev has the file,
    then we need to remove it from the dirstate, to prevent the
    dirstate from listing the file when it is no longer in the
    manifest.

    If we're merging, and the other revision has removed a file
    that is not present in the working directory, we need to mark it
    as removed.
    sforget deletedsforget removedN(tdeletedR/Rtremoved(R}R6tbranchmergetractionstfactionstxactionsR?((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt_forgetremoved?s
	 cCst|}|rMx9dD]1}x(||D]\}}}|j|q*WqWx(|dD]\}}}|j|qYWxA|dD]5\}}}|\}}	|j||j|qWx4|dD](\}}}|\}}	|j|qWxV|d	D]G\}}}|\}
}}}}
|r9|j|
n|j|qWni}x_t|D]Q}tj|}||krtjtd
|||fn|||<q`WdS(NtaR?tgtcdtdcR8tdmtdgtms(case-folding collision between %s and %s(RR?RRR(R,R-tdiscardRlR$tnormcaseR%R(RtwmftactionstpmmfRR?targstmsgtf2Rctf1tfatmovetanctfoldmaptfold((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt_checkcollision]s4

c	)CstddjD}	ii}
}gt|j||gddD]}|j^qO|rtj||||}
|
\}
}}}x7|jD])\}}|	dj||fdfqWx:|jD])\}}|	dj||fdfqWn|j	j
td	|j	jd
t
|t
|t
|f|j	jd|||f|j|j|j}}}t|
j}|j|jd|krxCt|jD]/}|j|jr|dcd
7<PqqWng}tj||}|j|}tj||}x|jD]\}\}}|rx|\}}n(|j|d1}}|d1krqQn|r|\} }!n|j|} }!|r||rqQn|rx|rx|}"|j|t}#|#tkr&|
j||}"n|j|"}$d| |!|$k}%||#kr~|!|$kr~|	dj|d2dfq ||#kr| |$kr||kr|	dj||!fdfqu|	dj||!fdfq |%r||#kr|	dj||!fdfq |%rF||#krF|	dj|| fdfq |	dj||||"t|jfdfqQ||krqQ|r||kr||}&|	dj|&|| fd|fqQ|r||
kr|
|}&|	dj|||&|&t|jfd|&fqQ|r||kr|||kr~|ra|	dj|d1dfq|	dj|d1dfq |ddkr|	d j|d1d!fq |	dj|d1d"fqQ|r||kr||}&|	d#j|&||!fd$|fqQ|r||
kr|
|}&|&|kri|	dj||&||&t|jfd%|&fq |	dj||&||&t|jfd&|&fqQ|rz||krz|r|r|	dj||!fd'fq t||||}'|r7|r7|'r7|	dj||||t|jfd(fq |rZ|'rZ|j|d)fq |	dj||!fd'fqQ|rQ|||krQt||||}'|r|'r|j|d)fq |r|	dj||j|fd*fq |	d+j||j|fd,fqQqQWxUt|D]G\}}(|(d)krf|j	j td-|q1ts1t!|(q1W|rt"j#td.nt"j$|j%s|r|s|jd/td0trt&||d1qt&|||	n|	S(3s
    Merge p1 and p2 with ancestor pa and generate merge action list

    branchmerge and force are as passed in to update
    partial = function to filter file lists
    acceptremote = accept the incoming changes without prompting
    css|]}|gfVqdS(N((t.0R((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pys	<genexpr>ssa f g cd dc r dm dg m dr e rd kR\cSs
|jS(N(trev(Rv((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt<lambda>stdrsdivergent renamestrdsrename and deletesresolving manifests
s) branchmerge: %s, force: %s, partial: %s
s% ancestor: %s, local: %s, remote: %s
s.hgsubstatet+RAtktkeeptesupdate permissionsRsremote is newerRsversions differRs$remote directory rename - move from slocal copied/moved from R8s
remote deleteRsprompt changed/deletediRR?sremote deleteds
other deletedRs"local directory rename - get from sremote copied from sremote moved from sremote createds#remote differs from untracked localtudsremote recreatingRsprompt deleted/changeds%s: untracked file differs
sLuntracked files in working directory differ from files in requested revisiontmissingtbranchN(('tdictRRlR.tmanifesttcopiestmergecopiesRMR/RytnoteRtdebugRJR,tvaluestupdatetsubstatetsubtdirtytdicthelperstdifft	flagsdiffRtgetRRcRRRRRRzRWR$R%t	checkcaseR`R()RR}tp2tpaRtforcetpartialtacceptremotetfollowcopiesRtcopytmovewithdirRvtrettdivergetrenamedeletetoftfltm1tm2tmatcopiedtstabortstfdiffRtdiff12R?tn12tfl12tn1tn2tfl1tfl2RRRtnolRt	differentR((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt
manifestmerge~s

9!$#&    %


%

%%

 %

 

ccs,|jj}tj}|j}|jj}d}x|D]\}}}	|jjd||	f|r|jjt	d|n||y|||dt
Wn6tk
r}
|jjt	d||
j
fnX|dkr||fVd}n|d7}q7W|dkr(||fVndS(	sSapply removes to the working directory

    yields tuples for progress updates
    is
 %s: %s -> r
sremoving %s
t
ignoremissings update failed to remove %s: %s!
idiN(RytverboseR$t
unlinkpathRRRRRRRtOSErrorRztstrerror(RRRtunlinkRRR@R?RRtinst((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytbatchremove.s*		
	c
cs|jj}|j}|j}d}x|D]\}}}	|jjd||	f|rw|jjtd|n||||j|d|dkr||fVd}n|d7}q+W|dkr||fVndS(suapply gets to the working directory

    mctx is the context to get from

    yields tuples for progress updates
    is
 %s: %s -> g
sgetting %s
idiN(RyRRxR{RRRR	(
RR6RRtfctxR{R@R?RR((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytbatchgetIs		 	c)
CsO	d*\}}}}	t|}
|
j|jj|jg}x$|jD]\}}
|
jqSWx|dD]\}}}|\}}}}}|dkrqxn|jjd||f||}||}||}||kr||}n|j|dt	}|
j
||||||krx|rx|j|qxqxW|jj
}td}td}|jj}x`|D]X}tjj|j|r|jjd|||tj|j|qqWtd	|jD}g|d
D]}|ddkr
|^q
rHtj|||||nd} tj|jdt|f|d
}!x=|!D]5\}"}#| |"7} ||| d|#d
|d|qzWt|d
}tj|jdt||f|d}!x=|!D]5\}"}#| |"7} ||| d|#d
|d|qWt|d}g|dD]}|ddkrF|^qFrtj|||||nx^|dD]R\}}}|jjd||f| d7} ||| d|d
|d|qWx^|dD]R\}}}|jjd||f| d7} ||| d|d
|d|qWx5|dD])\}}}|jjd||fqQWx|dD]\}}}|jjd||f| d7} ||| d|d
|d||\}}}}}|dkr$tj||||j||qn|||
j||d|}$|$d+k	rk|$dkrk|	d7}	q|$d+kr|d7}q|d7}qWx|dD]\}}}|jjd||f| d7} ||| d|d
|d||\}%}&|jj td|%|f|||j!||j|%j"|&tj|j|%|d7}qWx|dD]\}}}|jjd||f| d7} ||| d|d
|d||\}%}&|jj td|%|f|j!||j|%j"|&|d7}qvWx|dD]\}}}|jjd ||f| d7} ||| d|d
|d||\}'|jj#td!|x"|'D]}(|jj#d"|(qWq/Wx|d#D]\}}}|jjd$||f| d7} ||| d|d
|d||\}'|jj#td%|x"|'D]}(|jj#d"|(qTWqWx|d&D]\}}}|jjd'||f| d7} ||| d|d
|d||\}&||tj$|j|d(|&kd)|&k|d7}qW|
j%||d+d
|d|||||	fS(,sapply the merge action list to the working directory

    wctx is the working copy context
    mctx is the context to be merged into the working copy

    Return a tuple of counts (updated, merged, removed, unresolved) that
    describes how many files were affected by the update.
    iRs.hgsubstates! preserving %s for resolve of %s
RutupdatingRosremoving %s
css-|]#\}}|dkrt|VqdS(RN(RE(RRRA((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pys	<genexpr>sR8gMbP?titemttotaltunitRR?s
 %s: %s -> f
iRs
 %s: %s -> a
Rs
 %s: %s -> k
s
 %s: %s -> m
RwRs %s: %s -> dm
smoving %s to %s
Rs %s: %s -> dg
sgetting %s to %s
Rs %s: %s -> dr
s<note: possible conflict - %s was renamed multiple times to:
s %s
Rs %s: %s -> rd
s9note: possible conflict - %s was deleted and renamed to:
Rs
 %s: %s -> e
RARv(iiiiN(&RRtp1RRrtsortRyRRxRR-R/RRRtprogressRR`tlexistsRR$RtsumtsubrepotsubmergetworkerRRERtancestorRRRR{R	RztsetflagsRQ()RRR}R6t	overwriteRwtupdatedtmergedRRttmstmovesRRAR?RRRRRRRRdRetactxRfRt	_updatingt_filesRt
numupdatesRtztprogR@RR8tf0RcRtnf((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pytapplyupdates`s
"





-%
#(
#-
#
#




 
"
 "
	

	

	
(
c	s&t|dkr=t||||d|||||	}	n|jjtd||tdjd|Dfi}
x|D]}|jjtd|t|||||||||	}	xt|	jD]\}xD]}
|
\}}}|jj	d|||f||
krh|
|}||krX||j
|
q||
g||<qi|
g|6|
|<qWqWqW|jjtdtd	|	jD}	xt|
jD]\}}t|dkr\|jd\}t
jfd
dDr\|jjd||f|	|j
dqq\nd|kr|jjd
||	dj
|ddqnd|kr
|ddt
jfd|ddDr
|jjd||	dj
qq
n|jjtd|xTt|jD]@\}x1D])\}}}|jjd||fqJWq7W|jd\}|jjtd||f|	|j
dqqW|jjtdxq|	dD]e\}}}|jjtd|dr9|	dj
|ddfq|	dj
|ddfqW|	d2xi|	dD]]\}}}|\}|jjtd|ddkrj|	dj
||fdfqjqjW|	d2|jdkr"t|||\}}|	dj||	dj|n|	S( sDCalculate the actions needed to merge mctx into wctx using ancestorsiis5note: merging %s and %s using bids from ancestors %s
s and css|]}t|VqdS(N(tstr(RR((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pys	<genexpr>ss"
calculating bids for ancestor %s
s %s: %s -> %s
s 
auction for merging merge bids
css|]}|gfVqdS(N((RR((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pys	<genexpr>)sc3s|]}|dkVqdS(iN((RR(RA(s3/usr/lib/python2.7/dist-packages/mercurial/merge.pys	<genexpr>/ss %s: consensus for %s
Rs %s: picking 'keep' action
Rc3s|]}|kVqdS(N((RR(tga0(s3/usr/lib/python2.7/dist-packages/mercurial/merge.pys	<genexpr>;ss %s: picking 'get' action
s% %s: multiple bids for merge action:
s  %s -> %s
s( %s: ambiguous merge - picked %s action
send of auction

Rs^local changed %s which remote deleted
use (c)hanged version or (d)elete?$$ &Changed $$ &DeleteR8s
prompt deleteRsprompt keepRsfremote changed %s which local deleted
use (c)hanged version or leave (d)eleted?$$ &Changed $$ &Deletedsprompt recreatingR?N(RERRytstatusRRRRlRrRR/RRnR$tallRztpromptchoiceRRRtextend(RR}R6t	ancestorsRRRRRRtfbidsRRRR?RRROtbidst_fRcRR((RRAs3/usr/lib/python2.7/dist-packages/mercurial/merge.pytcalculateupdatess		*


 #	'	"		
			$c
Cs%xD|dD]8\}}}|r3|jj|q|jj|qWx+|dD]\}}}|jj|qRWx4|dD](\}}}|s|jj|qqWx+|dD]\}}}|jj|qWx|dD]\}}}qWxD|dD]8\}}}|r+|jj|q|jj|qWx|dD]\}}}|\}}}}	}
|r|jj|||kr|	r|jj|n||kr|jj||q|jj||qqJ||kr|jj|n|	rJ|jj|qJqJWx|dD]\}}}|\}}||jkr[q+n|r|jj||jj||jj||q+|jj||jj|q+Wxc|d	D]W\}}}|\}}|r
|jj||jj||q|jj|qWd
S(s$record merge actions to the dirstateR8R?RRRRRRRN(	RtremovetdropR-tnormallookuptotherparenttnormalRR(
RRRR?RRRRRRRRtflag((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt
recordupdateshs^c!
Cs|}|j}	zT|d"}
|
j}|d}d"g}
|rT||g}
n|d"krXy|j|
j}WnWtjk
r|
jdkr|jd}qtj	t
d|
jnX|jrX|jrXtj
||j}|rUg|D]}|D]}|^qq}|jd|d}|g}
qUqXn|ob|}||}|
dd"kr|jjdddkr|jj|j|j}gt|ptgD]}||^q}
q|j|d	|g}
n|j|jt|t|f\}}}}|rlt|d
krltj	t
dn|r|
|gkrtj	t
dnU|
|gkr|r|j|jkrtj	t
d
dt
dqn|r1|
js
|
jr1tj	t
ddt
dnxt|
jD]7}|
j|jrAtj	t
d|qAqAWn]|s||kr|jddtd|dd|jdd|ddddd$S|
|g|gfkr|
jdt}|s|d"krtj ||jg}||j|krL|g}
q|rt
d}|d"kryt
d}nt
d}tj	|d|qt
d}t
d}tj	|d|q|g}
qnt!}|r|
g}
ni|
|gkr|
j"g}
nH|r2|
jdtr2n+|
dr]|jj#ddtr]t}nt$||
||
|||||	}|s|t|df\}}}}n|s|jddtd|d||j%j&d |j'nt(|||
||d!|} |se|j)||t*|||tj+|j,d |se|j-j.|jqenWd"|	j/X|s|jdd|d|d| d#n| S(%s
    Perform a merge between the working directory and the given node

    node = the node to update to, or None if unspecified
    branchmerge = whether to merge between branches
    force = whether to force branch merging or file overwriting
    partial = a function to filter file lists (dirstate not updated)
    mergeancestor = whether it is merging with an ancestor. If true,
      we should accept the incoming changes for any prompts that occur.
      If false, merging with an ancestor (fast-forward) is only allowed
      between different named branches. This flag is used by rebase extension
      as a temporary fix and should be avoided in general.

    The table below shows all the behaviors of the update command
    given the -c and -C or no options, whether the working directory
    is dirty, whether a revision is specified, and the relationship of
    the parent rev to the target rev (linear, on the same named
    branch, or on another named branch).

    This logic is tested by test-update-branches.t.

    -c  -C  dirty  rev  |  linear   same  cross
     n   n    n     n   |    ok     (1)     x
     n   n    n     y   |    ok     ok     ok
     n   n    y     n   |   merge   (2)    (2)
     n   n    y     y   |   merge   (3)    (3)
     n   y    *     *   |    ---  discard  ---
     y   n    y     *   |    ---    (4)    ---
     y   n    n     *   |    ---    ok     ---
     y   y    *     *   |    ---    (5)    ---

    x = can't happen
    * = don't-care
    1 = abort: not a linear update (merge or update --check to force update)
    2 = abort: uncommitted changes (commit and merge, or update --clean to
                 discard changes)
    3 = abort: uncommitted changes (commit or update --clean to discard changes)
    4 = abort: uncommitted changes (checked in commands.py)
    5 = incompatible options (checked in commands.py)

    Return the same tuple as applyupdates().
    itdefaultttipsbranch %s not foundsmax(%ln)Rtpreferancestort*Rzisoutstanding uncommitted mergess7merging with a working directory ancestor has no effectsnothing to mergethints#use 'hg update' or check 'hg heads'suncommitted changessuse 'hg status' to list changess)uncommitted changes in subrepository '%s't	preupdatetthrowtparent1tparent2R)RRRs6commit and merge, or update --clean to discard changess+commit or update --clean to discard changessnot a linear updates'merge or update --check to force updateRtupdatestateRwNi(iiii(0twlockRR.t	branchtipRRtRepoLookupErrortlookupR$R%RRtchildrentsuccessorssetsRtrevsRytconfigt	changelogtcommonancestorsheadsRlRRRRERoRRRRthookRt
foregroundRRt
configboolR tvfsRXRRt
setparentsR'RRRt	setbranchtrelease(!RRRRRRt
mergeancestorRwRR2twctplRtpast
successorsRtnRRtcahsRtfp1tfp2txp1txp2RRR=RR,RRtstats((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyRs-

	#&

!/6"	! &((tstructRRRRRti18nRt	mercurialRRR$R|RRRRR=RRtpackR[tunpackRFRtobjectRRRRRRRRRRR R'RR(((s3/usr/lib/python2.7/dist-packages/mercurial/merge.pyt<module>s,"T$							!				c	Q

Copyright © 2017 || Recoded By Mr.Bumblebee