File: //proc/thread-self/root/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyc
�
1�3\c
@@ s1 d d l m Z d d l Z d d l Z d d l Z d d l m Z d d l m Z m Z m
Z
d d l m Z m
Z
m Z m Z e j e � Z d � Z e j d � Z d � Z d
� Z d � Z d � Z d
� Z d � Z d d d � Z d � Z d � Z d d d d d e e e e d � Z d � Z! d S( i ( t absolute_importNi ( t _( t bint nullidt nullrev( t dagopt errort mdifft pycompatc C@ s� | t k r( t j � } | j | � nC | | k rC | } | } n | } | } t j | � } | j | � | j | � | j � S( s� Compute the SHA-1 for revision data and its parents.
This hash combines both the current file contents and its history
in a manner that makes it easy to distinguish nodes with the same
content in the revision graph.
( R t _nullhasht copyt updatet hashlibt sha1t digest( t textt p1t p2t st at b( ( sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyt hashrevisionsha1 s
s
c C@ s� | d d k r d St j | d � j � } | d | !} i } x6 | j � D]( } | j d d � \ } } | | | <qL W| | d f S( s� Parse metadata header from revision data.
Returns a 2-tuple of (metadata, offset), where both can be None if there
is no metadata.
i s
s : i N( NN( t Nonet METADATA_REt searcht startt
splitlinest split( R R t mtextt metat lt kt v( ( sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyt parsemeta8 s
c @ s9 t � � } d j � f d � | D� � } d | | f S( s2 Add metadata to fulltext to produce revision text.t c 3@ s# | ] } d | � | f Vq d S( s %s: %s
N( ( t .0R ( R ( sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pys <genexpr>L s s
%s
%s( t sortedt join( R R t keyst metatext( ( R sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyt packmetaI s c C@ s t | � d } | o d | k S( Ni t censored( R! ( R R ( ( sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyt iscensoredtextO s c C@ s1 | j d � s | S| j d d � } | | d S( s� Extract just the revision data from source text.
Returns ``text`` unless it has a metadata header, in which case we return
a new buffer without hte metadata.
s
i ( t
startswitht index( R t offset( ( sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyt filtermetadataS s c C@ sp | j | � d t k r t St | j | � � d } | rl d | k rl d | k rl | d t | d � f St S( s� Resolve file revision copy metadata.
Returns ``False`` if the file has no copy metadata. Otherwise a
2-tuple of the source filename and node.
i R
t copyrev( t parentsR t FalseR! t revisionR ( t storet nodeR ( ( sA /usr/lib64/python2.7/site-packages/mercurial/utils/storageutil.pyt filerevisioncopied_ s c C@ s� | j d � r d | } n | } | j | � \ } } t | | | � } | | k rY t S| j | j | � � r{ | d k S| j | � r� | j | � | k St S( sh Determines whether file data is equivalent to a stored node.
Returns True if the passed file data would hash to the same value
as a stored revision and False otherwise.
When a stored revision is censored, filedata must be empty to have
equivalence.
When a stored revision has copy metadata, it is ignored as part
of the compare.
s
s
R"