Mercurial > hg
view hgext/remotefilelog/constants.py @ 47280:1766130fe9ba
dirstate-v2: Change the on-disk format when the requirement is enabled
For now, the format is the same except with an additional marker at the start.
This marker is redundant: for existing repositories it is `.hg/requires` that
determines which format to use. For new repositories, it is the new
`format.exp-dirstate-v2` config. There is no upgrade or downgrade so far.
Most of the changes are about plumbing a boolean through layers of APIs to
indicate which format should be used.
Differential Revision: https://phab.mercurial-scm.org/D10719
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Wed, 19 May 2021 13:15:00 +0200 |
parents | 687b865b95ad |
children | 6000f5b25c9b |
line wrap: on
line source
from __future__ import absolute_import import struct from mercurial.i18n import _ NETWORK_CAP_LEGACY_SSH_GETFILES = b'exp-remotefilelog-ssh-getfiles-1' SHALLOWREPO_REQUIREMENT = b"exp-remotefilelog-repo-req-1" BUNDLE2_CAPABLITY = b"exp-remotefilelog-b2cap-1" FILENAMESTRUCT = b'!H' FILENAMESIZE = struct.calcsize(FILENAMESTRUCT) NODESIZE = 20 PACKREQUESTCOUNTSTRUCT = b'!I' NODECOUNTSTRUCT = b'!I' NODECOUNTSIZE = struct.calcsize(NODECOUNTSTRUCT) PATHCOUNTSTRUCT = b'!I' PATHCOUNTSIZE = struct.calcsize(PATHCOUNTSTRUCT) FILEPACK_CATEGORY = b"" TREEPACK_CATEGORY = b"manifests" ALL_CATEGORIES = [FILEPACK_CATEGORY, TREEPACK_CATEGORY] # revision metadata keys. must be a single character. METAKEYFLAG = b'f' # revlog flag METAKEYSIZE = b's' # full rawtext size def getunits(category): if category == FILEPACK_CATEGORY: return _(b"files") if category == TREEPACK_CATEGORY: return _(b"trees") # Repack options passed to ``markledger``. OPTION_PACKSONLY = b'packsonly'