³ò ÷$•Jc@s¼ddklZddklZddkZddkZddkZddkZddkZddkZddk Z ddk Z ddk Z ddk Z ddkZddkZddkZddkZd„Zgd„Zhed<ed<ed<ed <ed <ed t|ƒo1t i itid|ƒƒ}| o| }n|o9y| idtƒ} Wq"tij o t}q"Xn|oá| id d td d ƒt i it i i|d ƒƒ}t i i |ƒpt i|ƒn || _ y|}t i|ƒWnRt!j oF}|i"t"i#jo'| i$ƒtit dƒ|ƒ‚n‚nXxÛ| i%i&ƒD]Ê}t i i| i |ƒ}t i i||ƒ}t i i'|ƒ}|o%t i i |ƒ ot i|ƒnt i i |ƒoF|i(dƒo"tit i i|dƒƒ} nti)||ƒq q Wt||ƒ}| idd d dddƒn@yt||dtƒ}WnRt!j oF}|i"t"i#jo'| i$ƒtit dƒ|ƒ‚n‚nXd%}|oad| i*jotit dƒƒ‚ng}|D]}|| i+|ƒq¹~}|d}n|i,ƒo|i-| d|d|ƒn:| i,ƒo| i.|d|ƒntit dƒƒ‚| o| i$ƒn|i,ƒoÚ|i/dddtƒ}|i0dƒ|i0d |ƒ|i$ƒ|i1i2d!d"|ƒ|oy|i1it d#ƒƒ|tj o |}nx8|d"d$fD]'}y|i+|ƒ}PWqqqXqWt3||ƒqEn| |fSWd%t4| | ƒ| d%j o| i5ƒnXd%S(&s,Make a copy of an existing repository. Create a copy of an existing repository in a new directory. The source and destination are URLs, as passed to the repository function. Returns a pair of repository objects, the source and newly created destination. The location of the source is added to the new repository's .hg/hgrc file, as the default to be used for future pulls and pushes. If an exception is raised, the partly cloned/updated destination repository will be deleted. Arguments: source: repository object or URL dest: URL of destination repository to create (defaults to base name of source repository) pull: always pull from source repository, even in local case stream: stream raw data uncompressed from repository (fast over LAN, slow over WAN) rev: revision to clone up to (implies pull=True) update: update working directory after clone completes, if destination is local repository (True means update to default rev, anything else is treated as a revision) iÿÿÿÿsdestination directory: %s sdestination '%s' already existssdestination '%s' is not emptyt DirCleanupcBs#eZd„Zd„Zd„ZRS(cSsti|_||_dS(N(tshutiltrmtreetdir_(tselfRd((s/sys/lib/python/mercurial/hg.pyt__init__Ïs cSs d|_dS(N(R Rd(Re((s/sys/lib/python/mercurial/hg.pyRMÒscSs%|io|i|itƒndS(N(RdRcRO(Re((s/sys/lib/python/mercurial/hg.pytcleanupÔs (t__name__t __module__RfRMRg(((s/sys/lib/python/mercurial/hg.pyRaÎs  Rtwaitt preoutgoingtthrowR4tclones.hgtdatatlocktoutgoingtnodet0i(R-RPsXsrc repository does not support revision lookup and so doesn't support clone by revisionitheadststreamRs)clone from remote to remote not supportedR=R9ttexts[paths] s default = %s R;R<supdating working directory R>N(6R R!R@RR1RR R5RNRR7RRRCRDRR?tlistdirtobjectR"R$tcancopytabspathRRoterrort LockErrorR0RORARBRERdtOSErrorRItEEXISTRMtstoretcopylisttdirnametendswitht copyfilest capabilitiesRPR%RmtpushRFRKR(t setconfigRRRRg(R(R4RStpullRVRTRtRURtsrc_repoRatsrc_lockt dest_lockt dir_cleanupRytcopythgdirt dest_pathR[R\tsrctdsttdstbaset dest_repoRt_[1]R]tfpR^R_((s/sys/lib/python/mercurial/hg.pyRm“sÐ#    !  !  "! *          cCsž|dtdƒf|dtdƒf|dtdƒf|dtdƒff}d ig}|D]}|td ƒ|qc~ƒ}|iid |ƒdS( Nitupdateditmergeditremovedit unresolveds, s %d files %ss%s (RRBR(RN(R&tstatsR’tstnote((s/sys/lib/python/mercurial/hg.pyt _showstatsEs 4cCs[ti||ttdƒ}t||ƒ|do|iitdƒƒn|ddjS(s<update the working directory to node, merging linear changesis1use 'hg resolve' to retry unresolved file merges iN(t_mergeRTR$R R›R(RNR(R&RqR˜((s/sys/lib/python/mercurial/hg.pyRTMs   cCsAti||ttdƒ}|ot||ƒn|ddjS(sAforcibly switch the working directory to node, clobbering changesiiN(RœRTR$ROR R›(R&Rqt show_statsR˜((s/sys/lib/python/mercurial/hg.pytcleanXscCs|ti||t|tƒ}t||ƒ|do|iitdƒƒn"|o|iitdƒƒn|ddjS(s)branch merge with node, resolving changesisOuse 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon s'(branch merge, don't forget to commit) i(RœRTROR$R›R(RNR(R&RqtforcetremindR˜((s/sys/lib/python/mercurial/hg.pytmerge^s  cCs#ti||tt|ƒddjS(s<revert changes to revision in node without updating dirstateii(RœRTR$RO(R&Rqtchoose((s/sys/lib/python/mercurial/hg.pytrevertiscCs ti|ƒS(s&verify the consistency of a repository(t_verifytverify(R&((s/sys/lib/python/mercurial/hg.pyR¥ms(%ti18nRRoRR RthttprepotsshrepotstatichttprepoRR,RzR¡RœR¥R¤RIRRbR RRRR"R$R1R5R7R ROR`RmR›RTRRRžR£(((s/sys/lib/python/mercurial/hg.pys s<<0  $           ?  ±