Patchwork D8181: nodemap: add a todo list for getting out of experimental

login
register
mail settings
Submitter phabricator
Date Feb. 28, 2020, 6:54 p.m.
Message ID <differential-rev-PHID-DREV-fwt2fuc2csw42ovqt6xj-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/45390/
State Superseded
Headers show

Comments

phabricator - Feb. 28, 2020, 6:54 p.m.
marmoute created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  This is all the requirement I can think off. More might be added as they emerge.
  
  The first ones are mostly simple technical matters that will be taken care of
  soon. The question about the "status" of the persistent nodemap and the revlogs
  that will use it requires more discussion and thinking.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/configitems.py

CHANGE DETAILS




To: marmoute, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -405,6 +405,23 @@ 
 coreconfigitem(
     b'devel', b'legacy.exchange', default=list,
 )
+# TODO before getting `persistent-nodemap` out of experimental
+#
+# * code/tests around aborted transaction
+# * code/tests around pending data for hooks
+# * code/tests around detection of invalid cache
+#   (eg: after strip from an incompatible client)
+# * regenerate a new nodemap when the unused/total ration is to high
+# * decide for a "status" of the persistent nodemap and associated location
+#   - part of the store next the revlog itself (new requirements)
+#   - part of the cache directory
+#   - part of an `index` directory
+#     (https://www.mercurial-scm.org/wiki/ComputedIndexPlan)
+# * do we want to use this for more than just changelog? if so we need:
+#   - simpler "pending" logic for them
+#   - double check the memory story (we dont want to keep all revlog in memory)
+#   - think about the naming scheme if we are in "cache"
+# * increment the version format to "1" and freeze it.
 coreconfigitem(
     b'devel', b'persistent-nodemap', default=False,
 )