nodemap: add a todo list for getting out of experimental
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 27 Feb 2020 15:42:04 +0100
changeset 44524 15a033cabc19
parent 44523 e7fff9c3cdac
child 44525 6c906eaedd0d
nodemap: add a todo list for getting out of experimental 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. Differential Revision: https://phab.mercurial-scm.org/D8181
mercurial/configitems.py
--- a/mercurial/configitems.py	Tue Feb 18 15:19:11 2020 +0100
+++ b/mercurial/configitems.py	Thu Feb 27 15:42:04 2020 +0100
@@ -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,
 )