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
--- 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,
)