# HG changeset patch # User Pierre-Yves David # Date 1582814524 -3600 # Node ID 15a033cabc19703e38b7107679dd9548832593c3 # Parent e7fff9c3cdaca008ae9a33a954a6f294a3df9a4b 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 diff -r e7fff9c3cdac -r 15a033cabc19 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, )