HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //proc/self/root/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyc
�
1�3\c@@s�ddlmZddlZddlZddlmZddlmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZdZd�Zd	efd
��YZd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!e"d�Z#d�Z$d�Z%ej&d�Z'd�Z(d�Z)fd�Z*d�Z+d�Z,d�Z-d �Z.d!�Z/d"�Z0e1e1d#�Z2e"e1e1d$�Z3d%�Z4e"d&�Z5d'�Z6dS((i(tabsolute_importNi(t_(tbinthextshorttwdirid(tencodingterrortobsutiltpycompattscmutilttxnutiltutils"bookmarks.active bookmarks.currentcC@s%tj|j|jd�\}}|S(s�Hook so that extensions that mess with the store can hook bm storage.

    For core, this just handles wether we should see pending
    bookmarks or the committed ones. Other extensions (like share)
    may need to tweak this behavior further.
    t	bookmarks(Rt
trypendingtroottvfs(trepotfptpending((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt
_getbkfile$s!tbmstorecB@s�eZdZd�Zed��Zejd��Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zdd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zedd�ZRS(s�Storage for bookmarks.

    This object should do all bookmark-related reads and writes, so
    that it's fairly simple to replace the storage underlying
    bookmarks without having to clone the logic surrounding
    bookmarks. This type also should manage the active bookmark, if
    any.

    This particular bmstore implementation stores bookmarks as
    {hash}\s{name}
 (the same format as localtags) in
    .hg/bookmarks. The mapping is stored as {name: nodeid}.
    c
C@s�||_i|_}i|_}t|_t|_|jj}t}y$t	|��}x|D]}|j
�}|s~q`ny�|jdd�\}}	||�}
|
|kr"tj
|	�}	|
||	<|j|
�}|dkr�|	g||
<q"|j|	�|d|	kr"|j�q"nWq`ttfk
r_|jjtd�tj|��q`Xq`WWdQXWn+tk
r�}|jtjkr��q�nXt||�|_dS(Nt ii����s$malformed line in .hg/bookmarks: %r
(t_repot_refmapt_nodemaptTruet_cleant_acleant	changelogtnodemapRRtstriptsplitRttolocaltgettNonetappendtsortt	TypeErrort
ValueErrortuitwarnRR	tbytestrtIOErrorterrnotENOENTt_readactivet_active(
tselfRtrefmapRtnmttonodetbkfiletlinetshatrefspectnodetnrefstinst((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt__init__<s@	

		


#
cC@s|jS(N(R/(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytactiveescC@sD|dk	r.||jkr.td|��n||_t|_dS(Nsbookmark %s does not exist!(R#RtAssertionErrorR/tFalseR(R0tmark((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR<is	cC@s
t|j�S(N(tlenR(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt__len__qscC@s
t|j�S(N(titerR(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt__iter__tscC@s
|jj�S(N(Rt	iteritems(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRDwscC@s
|jj�S(N(Rtitems(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyREzscC@s
|jj�S(N(Rtkeys(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRF~scC@s
|jj�S(N(Rtvalues(R0((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRG�scC@s
||jkS(N(R(R0R?((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt__contains__�scC@s|j|S(N(R(R0R?((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt__getitem__�scC@s|jj||�S(N(RR"(R0R?tdefault((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR"�scC@s�t|_||jkr(|j|�n||j|<|jj|�}|dkrf|g|j|<n|j|�|j�dS(N(	R>RRt_delRR"R#R$R%(R0R?R8R9((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt_set�s	

cC@snt|_|jj|�}|j|}t|�dkr]|d|ksPt�|j|=n
|j|�dS(Nii(R>RRtpopRR@R=tremove(R0R?R8R9((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRK�s	

cC@s|jj|g�S(s@Return a sorted list of bookmarks pointing to the specified node(RR"(R0R8((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytnames�scC@s|j|}|j|S(N(RR(R0R?R8((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt	changectx�s
c	C@s�|jjd�}x�|D]�\}}|jj|�}|dkrS|j|�n|j||�|dk	r|j|�}|dk	r�|d}n||f||<qqW|j|�dS(s-Apply a list of changes to bookmarks
        R
iN(tchangesR"RR#RKRLt
_recordchange(	R0RttrRQt	bmchangestnameR8toldtprevious((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytapplychanges�s
cC@s-|jdd|jdd�d|jd<dS(s�record that bookmarks have been changed in a transaction

        The transaction is then responsible for updating the file content.R
tlocationtplaint1tbookmark_movedN(R
(taddfilegeneratort_writethookargs(R0RS((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRR�scC@s�|j}|j|jkr1d|_|j�n|j��]|jdddtdt�}z,y|j|�Wn|j	��nXWd|j
�XWdQXdS(sFactored out for extensibilityR
twt
atomictempt
checkambigN(t
_bookmarksR<RR#t_writeactivetwlockRRR^tdiscardtclose(R0Rtrbmtfile_((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt
_writerepo�s		

	
cC@s�|jr
dS|jj��v|jdk	r{|jjdddtdt�}z|jtj	|j��Wd|j
�Xn|jjjd�WdQXt|_dS(Nsbookmarks.currentR`RaRb(RRReR/R#RRtwriteRt	fromlocalRgt	tryunlink(R0tf((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRd�s		cC@sfxIt|jj��D]2\}}|jdt|�tj|�f�qWt|_|j	j
�dS(Ns%s %s
(tsortedRRDRkRRRlRRRtinvalidatevolatilesets(R0RRUR8((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR^�s"*	cC@s8|dkr4|jr|jStjtd���n|S(Nt.sno active bookmark(R<RtRepoLookupErrorR(R0tbname((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt
expandname�s
	c
C@s�|jdj�}||jkr�|r�|r�|j||krR||krRgS|j|j�}|jjj|g�}|j|�}g|jD]?}|jdd�d|jdd�dkr�|j|^q�}	|j�|kr||	krt|j|g|�Sg|	D]1}|j|j�|ksA||kr|^q}
t|j|
|�}t	|j||j|�r�|jj
jtd�|t
|j��f�|Sntjtd�|��n||jj�ks�||jjj�kr|rtjtd���nt|�dkr�|r�ytj|j|�}Wntjk
rjt}nX|r�|jj
jtd	�|�q�ngS(
s�check repo for a potential clash of mark with an existing bookmark,
        branch, or hash

        If target is supplied, then check that we are moving the bookmark
        forward.

        If force is supplied, then forcibly move the bookmark to a new commit
        regardless if it is a move forward.

        If divergent bookmark are to be deleted, they will be returned as list.
        Rqt@iis%moving bookmark '%s' forward from %s
s.bookmark '%s' already exists (use -f to force)s5a bookmark cannot have the name of an existing branchis[bookmark %s matches a changeset hash
(did you leave a -r out of an 'hg bookmark' command?)
(RR8RtrevRt	ancestorsRPR tdivergent2deletet	validdestR(tstatusRRRtAbortt	branchmaptdirstatetbranchR@R
tisrevsymboltLookupErrorR>R)(
R0R?tforcettargettcurRvtanctbmctxtbtdivst
deletefromtdelbmst
shadowhash((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt
checkconflict�sH?
1	

	N(t__name__t
__module__t__doc__R;tpropertyR<tsetterRARCRDRERFRGRHRIR#R"RLRKRORPRXRRRjRdR^RtR>R�(((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR.s0	)										
								cC@s�d}y|jd�}Wn,tk
rG}|jtjkrC�ndSXzzyGtj|j�pfdgd�}|dks�||kr�d}nWn,tk
r�}|jtjkr��ndSXWd|j�X|S(s�
    Get the active bookmark. We can have an active bookmark that updates
    itself as we commit. This function returns the name of that bookmark.
    It is stored in .hg/bookmarks.current
    sbookmarks.currenttiN(	R#RR+R,R-RR!t	readlinesRg(RtmarksR?tfileR:((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR./s$"
	cC@s||j_|jj�dS(s�
    Set the given bookmark to be 'active', meaning that this bookmark will
    follow new commits that are made.
    The name is recorded in .hg/bookmarks.current
    N(RcR<Rd(RR?((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytactivateNscC@sd|j_|jj�dS(s7
    Unset the active bookmark in this repository.
    N(R#RcR<Rd(R((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt
deactivateWscC@sU|j}|j}g|dj�D]}|j�^q#}||koT|||kS(s�
    Tell whether the 'active' bookmark (the one that follows new commits)
    points to one of the parents of the current working directory (wdir).

    While this is normally the case, it can on occasion be false; for example,
    immediately after a pull, the active bookmark can be moved to point
    to a place different than the wdir. This is solved by running `hg update`.
    N(t_activebookmarkRcR#tparentsR8(RR?R�tpR�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytisactivewdirparent^s			)cC@s�g}|j}g|D]8}|jdd�d|jdd�dkr|^q}xa|D]Y}|dks[d|krq[n|r[|||kr[||kr�|j|�q�q[q[W|S(sZfind divergent versions of bm on nodes in deletefrom.

    the list of bookmark to delete.Ruii(RcR R$(RR�tbmttodeleteR�R�t	divergentR?((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRxls	E
cC@s�|jstd��n|jjdd�d}g}xI|jj�D]8\}}|jdd�d|krG|j|�qGqGW|S(svGiven a repo with an active bookmark, return divergent bookmark nodes.

    Args:
      repo: A repository with an active bookmark.

    Returns:
      A list of binary node ids that is the full list of other
      revisions with bookmarks divergent from the active bookmark. If
      there were no divergent bookmarks, then this list will contain
      only one entry.
    s9headsforactive() only makes sense with an active bookmarkRuii(R�R'R RcRDR$(RRUtheadsR?tn((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytheadsforactive|s	cC@sdd\}}|j}t|�r4|dj�}n&|rZ|jtd�|�|}n||fS(s�Return a tuple (activemark, movemarkfrom) indicating the active bookmark
    and where to move the active bookmark from, if needed.Rqsupdating to active bookmark %s
N(NN(R#R�R�R8RzR(R(Rtcheckouttmovemarkfromt
activemark((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytcalculateupdate�s		c
C@s�|}|j}|j}|s"tSg}|||kr"||}g|D]A}|jdd�d|jdd�dkrI|j|�^qI}	|jj|j�g�}
g|	D]0}|j�|
ks�||kr�|j�^q�}t	||j|�|�r"|j
||j�f�q"nx-t|||�D]}|j
|df�q5W|r�|j
��0|jd��}|j|||�WdQXWdQXnt|�S(NRuiitbookmark(RcR<R>R RPRRwRvR8RyR$RxR#tlockttransactionRXtbool(
RR�R8R�R�R<RTtnewR�R�R�R�RS((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytupdate�s*		

A=
"cc@stt|di�}|jj}xO|j�D]A\}}||�r+d|ks^|jd�r+||fVq+q+WdS(NRcRu(tgetattrRthasnodeRDtendswith(RR�R�tktv((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytlistbinbookmarks�s
'cC@s7i}x*t|�D]\}}t|�||<qW|S(N(R�R(RtdtbookR8((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt
listbookmarks�scC@s�|j���|j���|jd���}|j}t|j|d��}||kri||kritS|dkr�|dfg}n)||kr�tS|||j�fg}|j	|||�t
SWdQXWdQXWdQXdS(NR
R�(ReR�R�RcRR"R>R#R8RXR(RtkeyRVR�RSR�texistingRQ((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytpushbookmark�s

	cC@sO|rt|�}n"t|�}t|�}||B}ggggggggf}|dj}|dj}	|dj}
|dj}|dj}|dj}
|dj}|dj}x�t|�D]}}||kr||kr|	|d	||f�qG||d	d	f�q�||kr>||||d	f�q�||}||}||krt||||f�q�||kr4||kr4||}||}|j�|j�kr�t|||�r�||||f�q1||||f�qGt|||�r|
|||f�qG||||f�q�|
|||f�q�W|S(
s�Compare bookmarks between srcmarks and dstmarks

    This returns tuple "(addsrc, adddst, advsrc, advdst, diverge,
    differ, invalid)", each are list of bookmarks below:

    :addsrc:  added on src side (removed on dst side, perhaps)
    :adddst:  added on dst side (removed on src side, perhaps)
    :advsrc:  advanced on src side
    :advdst:  advanced on dst side
    :diverge: diverge
    :differ:  changed, but changeset referred on src is unknown on dst
    :invalid: unknown on both side
    :same:    same on both side

    Each elements of lists in result tuple is tuple "(bookmark name,
    changeset ID on source side, changeset ID on destination
    side)". Each changeset IDs are 40 hexadecimal digit string or
    None.

    Changeset IDs of tuples in "addsrc", "adddst", "differ" or
     "invalid" list may be unknown for repo.

    If "targets" is specified, only bookmarks listed in it are
    examined.
    iiiiiiiiN(tsetR$RoR#RvRy(Rtsrcmarkstdstmarksttargetstbsett
srcmarksett
dstmarksettresultstaddsrctadddsttadvsrctadvdsttdivergetdiffertinvalidtsameR�tscidtdcidtsctxtdctx((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytcomparebookmarks�sJ












c	C@s�|dkrd}n|jd�r9tj|�j}nx[|jd�D]J\}}|jd�rytj|�j}n||krId||fSqIWxGtdd�D]6}d||f}||ks�|||kr�|Sq�Wd	S(
s�Return appropriate diverged bookmark for specified ``path``

    This returns None, if it is failed to assign any divergent
    bookmark name.

    This reuses already existing one with "@number" suffix, if it
    refers ``remotenode``.
    RuR�sfile:tpathss%s@%siids%s@%dN(t
startswithRturltpathtconfigitemstrangeR#(	R(R�R�t
localmarkst
remotenodeR�tutxR�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt_diverge#s		cC@s7i}x*|j�D]\}}t|�||<qW|S(N(RER(R�tbinremotemarksRUR8((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytunhexlifybookmarks@ss>20sHcC@seg}xO|D]G\}}|s(t}n|jtj|t|���|j|�q
Wdj|�S(smencode a '(bookmark, node)' iterable into a binary stream

    the binary format is:

        <node><bookmark-length><bookmark-name>

    :node: is a 20 bytes binary node,
    :bookmark-length: an unsigned short,
    :bookmark-name: the name of the bookmark (of length <bookmark-length>)

    wdirid (all bits set) will be used as a special value for "missing"
    R�(RR$t_binaryentrytpackR@tjoin(R
t
binarydataR�R8((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytbinaryencodeHs
	cC@s�tj}g}x�tr�|j|�}t|�|kr[|rWtjtd���nPntj|�\}}|j|�}t|�|kr�|r�tjtd���q�n|t	kr�d}n|j||f�qW|S(sodecode a binary stream into an '(bookmark, node)' iterable

    the binary format is:

        <node><bookmark-length><bookmark-name>

    :node: is a 20 bytes binary node,
    :bookmark-length: an unsigned short,
    :bookmark-name: the name of the bookmark (of length <bookmark-length>))

    wdirid (all bits set) will be used as a special value for "missing"
    sbad bookmark streamN(R�tsizeRtreadR@RR{RtunpackRR#R$(tstreamt	entrysizetbookstentryR8tlengthR�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytbinarydecode]s"
			cC@sI|jd�|j}t|||�\}}}	}
}}}
}|j}|j}|jdd�rt|j}}nt|�}g}x�|D]�\}}}||kr�|j|||td�|f�q�||kr�|j	|�|jtd�|t
|�d f�q�q�Wx:|	D]2\}}}|j|||td�|f�qW|jd�|D��x�|D]�\}}}||kr�|j|�|j|||td	�|f�qpt
|||||�}|r|j|||td
�||ff�qp|td�|�qpWxZ||
D]N\}}}||kr+|j|�|j|||td	�|f�q+q+WxZ|D]R\}}}||kr�|j	|�|jtd�|t
|�d f�q�q�W|rE|�}g}x=t|�D]/\}}}}|j||f�||�q�W|j|||�ndS(Nschecking for updated bookmarks
R(tquietbookmarkmovesadding remote bookmark %s
s0remote bookmark %s points to locally missing %s
isupdating bookmark %s
cs@s|]}|dVqdS(iN((t.0R�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pys	<genexpr>�ssimporting bookmark %s
s#divergent bookmark %s stored as %s
sAwarning: failed to assign numbered name to divergent bookmark %s
(tdebugRcR�RzR)t
configboolR�R$RRNRtdifference_updateRfR�RoRX(R(RtremotemarksR�ttrfunctexplicitR�R�R�R�R�R�R�R�R�RzR)tchangedR�R�R�tdbRSRQR8twritertmsg((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytupdatefromremote|sd
	*		

	

	c
@s�|jtd��|j��,}t|jdidd6�j��}WdQXt|||j�}|\}}}}	}
}}}
g�|jr�d��n	d��|j	r���fd�}n��fd	�}x3|D]+\}}}||t
|�td
��q�Wx3|D]+\}}}||t
|�td��qWx3|
D]+\}}}||t
|�td��qGWx3|D]+\}}}||t
|�td
��q}W�s�|jtd��dSx!t��D]}|j|�q�WdS(s/Show bookmarks incoming from other to repo
    s searching for changed bookmarks
tlistkeysR
t	namespaceNcS@s|S(N((tid((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt<lambda>�R�cS@s|d S(Ni((R�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR��R�c@s$�jd|�|�|f�dS(Ns   %-25s %s %s
(R$(R�R�tst(tgetidt	incomings(s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytadd�sc@s!�jd|�|�f�dS(Ns   %-25s %s
(R$(R�R�R�(R�R�(s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR��staddedtadvancedtdivergedR�sno changed bookmarks found
ii(
RzRtcommandexecutorR�tcallcommandtresultR�Rct	debugflagtverboseRRoRk(R(RtpeerteR�trR�R�R�R�R�R�R�R�R�R�R�R�ts((R�R�s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytincoming�s6			    c@s|jtd��t|jd��}t||j|�}|\}}}}}	}
}}g�|jrvd��n	d��|jr���fd�}
n��fd�}
x3|D]+\}}}|
|t|�td��q�Wx1|D])\}}}|
|dd	td
��q�Wx3|D]+\}}}|
|t|�td��q Wx3|	D]+\}}}|
|t|�td��qVWx3|
D]+\}}}|
|t|�td
��q�W�s�|jtd��dSx!t	��D]}|j
|�q�WdS(s/Show bookmarks outgoing from repo to other
    s searching for changed bookmarks
R
cS@s|S(N((R�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR��R�cS@s|d S(Ni((R�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR��R�c@s$�jd|�|�|f�dS(Ns   %-25s %s %s
(R$(R�R�R�(R�t	outgoings(s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR��sc@s!�jd|�|�f�dS(Ns   %-25s %s
(R$(R�R�R�(R�R	(s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyR��sR�Ri(tdeletedR�R�R�sno changed bookmarks found
ii(RzRR�R�R�RcRRRRoRk(R(RtotherR�RR�R�R�R�R�R�R�R�R�R�R�R�R((R�R	s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytoutgoing�s6			    c

C@s�|j��,}t|jdidd6�j��}WdQXt|||j�}|\}}}}}	}
}}t|�t|�fS(sCompare bookmarks between repo and other for "hg summary" output

    This returns "(# of incoming, # of outgoing)" tuple.
    R�R
R�N(R�R�RRR�RcR@(
RRRR�RR�R�R�R�R�R�R�R�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytsummaryscC@se|j�}||krtS|s&tS|jrT|j�tj||j�g�kS|j|�SdS(s?Is the new bookmark destination a valid update from the old oneN(t
unfilteredR>RtobsstoreR8Rt
foregroundtisancestorof(RRVR�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyRy"s	%cC@sA|j�}|s*tjtd���ntj||d�|S(svreturn a valid version of a potential bookmark name

    Raises an abort error if the bookmark name is not valid.
    s4bookmark names cannot consist entirely of whitespaceR�(RRR{RR
t
checknewlabel(RR?((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytcheckformat2s
cC@s�|j}g}xe|D]]}||krDtjtd�|��n||jkr`t|�n|j|df�qW|j|||�dS(s]remove a mark from the bookmark store

    Raises an abort error if mark does not exist.
    sbookmark '%s' does not existN(	RcRR{RR�R�R$R#RX(RRSROR�RQR?((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytdelete>s	

c
C@s�|j}t||�}||kr@tjtd�|��ng}x-|j||�D]}	|j|	df�qYW|j|||f|dfg�|j	|||�|j
|kr�|r�t||�ndS(srename a bookmark from old to new

    If force is specified, then the new name can overwrite an existing
    bookmark.

    If inactive is specified, then do not activate the new bookmark.

    Raises an abort error if old is not in the bookmark store.
    sbookmark '%s' does not existN(RcRRR{RR�R$R#textendRXR�R�(
RRSRVR�R�tinactiveR�R?RQR�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytrenameMs
	#cC@s|j}|dj�}d}g}	d}
|rLtj||gd�}nx�|D]�}t||�}|dkr}|}n|r�||jkr�t|�dS|}|r�tj||�}
|
j	�r�|
j
�d }
n|
j�}nx0|j|||�D]}|	j|df�qW|	j||f�qSW|
r�|j
jtd�|
�|
j�r�tj|d|
|
�}|j
jd|�q�n|j|||	�|r�|||kr�|r�t||�n(||kr�||jkr�t|�ndS(s$add a list of bookmarks

    If force is specified, then the new name can overwrite an existing
    bookmark.

    If inactive is specified, then do not activate any bookmark. Otherwise, the
    first bookmark is activated.

    Raises an abort error if old is not in the bookmark store.
    RqtnowarnNis bookmarking hidden changeset %s
s%ss(%s)
(RcR8R#R
tunhidehashlikerevsRR�R�t	revsinglethiddenRR�R$R(R)RtobsoleteRt_getfilteredreasonRXR�(RRSRORvR�RR�R�tnewactRQt	hiddenrevR?ttgttctxR�R�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytaddbookmarkscsB	
	
c
	C@s6|j}t|�dkr=|j�r=|jtd��nx�t|j��D]�\}\}}}|j�|jd|�|j	s�|j
d|d|�n|jdd|d|�dd	tj
|�}	|j|j	d
|	d|jj|�||�d|�|jdt|k�|j
d
�qPWdS(s�private method to print bookmarks

    Provides a way for extensions to control how bookmarks are printed (e.g.
    prepend or postpend names)
    isno bookmarks set
Rs %s tlabelR�s%sRisrev nodes %d:%sR<s
N(thexfuncR@tisplainRzRRoRDt	startitemtcontexttquietRZRkRtcolwidtht	condwriteRRvtdatatactivebookmarklabel(
R(RtfmtbmarksthexfntbmarkR�tprefixR#tpad((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt_printbookmarks�s	(
	"c
C@s�|j}i}x�|p|D]v}||krJtjtd�|��n|j}||krodt}}	nd\}}	||||	f||<qWt||||�dS(stprint bookmarks by the given formatter

    Provides a way for extensions to control how bookmarks are printed.
    sbookmark '%s' does not existt*RR�N(RR�(RcRR{RR�R,R3(
R(RR-ROR�R.R0R<R1R#((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytprintbookmarks�s		cC@sO|dkrd}n|dkr*d}ni|d6t|�d6t|�d6S(NR�R�R8toldnode(R#R(RURVR�((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pytpreparehookargs�s		

(7t
__future__RR,tstructti18nRR8RRRRR�RRRR	R
RRR,RtobjectRR.R�R�R�RxR�R�R�R�R�R�R#R�R�R�tStructR�R�R�R�RRR
RyRRR>RR"R3R5R7(((s9/usr/lib64/python2.7/site-packages/mercurial/bookmarks.pyt<module>sL"4	
�												L				=	.	-				3