mercurial/revlog.py
changeset 32697 19b9fc40cc51
parent 32684 af854b1b36f8
child 32866 fa247f53f647
equal deleted inserted replaced
32696:0c09afdf5704 32697:19b9fc40cc51
    49 _zlibdecompress = zlib.decompress
    49 _zlibdecompress = zlib.decompress
    50 
    50 
    51 # revlog header flags
    51 # revlog header flags
    52 REVLOGV0 = 0
    52 REVLOGV0 = 0
    53 REVLOGV1 = 1
    53 REVLOGV1 = 1
       
    54 # Dummy value until file format is finalized.
       
    55 # Reminder: change the bounds check in revlog.__init__ when this is changed.
       
    56 REVLOGV2 = 0xDEAD
    54 FLAG_INLINE_DATA = (1 << 16)
    57 FLAG_INLINE_DATA = (1 << 16)
    55 FLAG_GENERALDELTA = (1 << 17)
    58 FLAG_GENERALDELTA = (1 << 17)
    56 REVLOG_DEFAULT_FLAGS = FLAG_INLINE_DATA
    59 REVLOG_DEFAULT_FLAGS = FLAG_INLINE_DATA
    57 REVLOG_DEFAULT_FORMAT = REVLOGV1
    60 REVLOG_DEFAULT_FORMAT = REVLOGV1
    58 REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS
    61 REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS
    59 REVLOGV1_FLAGS = FLAG_INLINE_DATA | FLAG_GENERALDELTA
    62 REVLOGV1_FLAGS = FLAG_INLINE_DATA | FLAG_GENERALDELTA
       
    63 REVLOGV2_FLAGS = REVLOGV1_FLAGS
    60 
    64 
    61 # revlog index flags
    65 # revlog index flags
    62 REVIDX_ISCENSORED = (1 << 15) # revision has censor metadata, must be verified
    66 REVIDX_ISCENSORED = (1 << 15) # revision has censor metadata, must be verified
    63 REVIDX_ELLIPSIS = (1 << 14) # revision hash does not match data (narrowhg)
    67 REVIDX_ELLIPSIS = (1 << 14) # revision hash does not match data (narrowhg)
    64 REVIDX_EXTSTORED = (1 << 13) # revision data is stored externally
    68 REVIDX_EXTSTORED = (1 << 13) # revision data is stored externally
   289         self._compengine = 'zlib'
   293         self._compengine = 'zlib'
   290 
   294 
   291         v = REVLOG_DEFAULT_VERSION
   295         v = REVLOG_DEFAULT_VERSION
   292         opts = getattr(opener, 'options', None)
   296         opts = getattr(opener, 'options', None)
   293         if opts is not None:
   297         if opts is not None:
   294             if 'revlogv1' in opts:
   298             if 'revlogv2' in opts:
       
   299                 # version 2 revlogs always use generaldelta.
       
   300                 v = REVLOGV2 | FLAG_GENERALDELTA | FLAG_INLINE_DATA
       
   301             elif 'revlogv1' in opts:
   295                 if 'generaldelta' in opts:
   302                 if 'generaldelta' in opts:
   296                     v |= FLAG_GENERALDELTA
   303                     v |= FLAG_GENERALDELTA
   297             else:
   304             else:
   298                 v = 0
   305                 v = 0
   299             if 'chunkcachesize' in opts:
   306             if 'chunkcachesize' in opts:
   336                 raise RevlogError(_('unknown flags (%#04x) in version %d '
   343                 raise RevlogError(_('unknown flags (%#04x) in version %d '
   337                                     'revlog %s') %
   344                                     'revlog %s') %
   338                                   (flags >> 16, fmt, self.indexfile))
   345                                   (flags >> 16, fmt, self.indexfile))
   339         elif fmt == REVLOGV1:
   346         elif fmt == REVLOGV1:
   340             if flags & ~REVLOGV1_FLAGS:
   347             if flags & ~REVLOGV1_FLAGS:
       
   348                 raise RevlogError(_('unknown flags (%#04x) in version %d '
       
   349                                     'revlog %s') %
       
   350                                   (flags >> 16, fmt, self.indexfile))
       
   351         elif fmt == REVLOGV2:
       
   352             if flags & ~REVLOGV2_FLAGS:
   341                 raise RevlogError(_('unknown flags (%#04x) in version %d '
   353                 raise RevlogError(_('unknown flags (%#04x) in version %d '
   342                                     'revlog %s') %
   354                                     'revlog %s') %
   343                                   (flags >> 16, fmt, self.indexfile))
   355                                   (flags >> 16, fmt, self.indexfile))
   344         else:
   356         else:
   345             raise RevlogError(_('unknown version (%d) in revlog %s') %
   357             raise RevlogError(_('unknown version (%d) in revlog %s') %