Patchwork D10151: revlog: add attribute on revlogs that specifies its kind

login
register
mail settings
Submitter phabricator
Date March 10, 2021, 6:36 p.m.
Message ID <differential-rev-PHID-DREV-plmsc3uglaj7vpwkcbxn-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/48466/
State Superseded
Headers show

Comments

phabricator - March 10, 2021, 6:36 p.m.
Alphare created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  The sidedata logic needs to check whether the revlog it's working on is a
  changelog, a manifest or a filelog.
  Furthermore, future versions of the revlog format will most likely see a split
  between the three types (i.e. they will store different information), so having
  this will be useful for other future endeavors as well.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D10151

AFFECTED FILES
  mercurial/changelog.py
  mercurial/filelog.py
  mercurial/manifest.py

CHANGE DETAILS




To: Alphare, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/mercurial/manifest.py b/mercurial/manifest.py
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -1610,6 +1610,7 @@ 
         self.index = self._revlog.index
         self.version = self._revlog.version
         self._generaldelta = self._revlog._generaldelta
+        self._revlog.revlog_kind = b'manifest'
 
     def _setupmanifestcachehooks(self, repo):
         """Persist the manifestfulltextcache on lock release"""
diff --git a/mercurial/filelog.py b/mercurial/filelog.py
--- a/mercurial/filelog.py
+++ b/mercurial/filelog.py
@@ -32,6 +32,7 @@ 
         # Full name of the user visible file, relative to the repository root.
         # Used by LFS.
         self._revlog.filename = path
+        self._revlog.revlog_kind = b'filelog'
 
     def __len__(self):
         return len(self._revlog)
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -428,6 +428,7 @@ 
         self._filteredrevs = frozenset()
         self._filteredrevs_hashcache = {}
         self._copiesstorage = opener.options.get(b'copies-storage')
+        self.revlog_kind = b'changelog'
 
     @property
     def filteredrevs(self):