cache: introduce an abstract class for cache we can upgrade incrementally
Right now each class implements their own mechanism for validation, and
update. We start introducing abstract class to ultimately allow more
unification of the cache code.
The end goal of this series is to introduce a cache for some obsolescence
property, not to actually implement the cache. However, taking advantage of
adding a new cache to introduce the abstract class seems like a win.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
#!/bin/bash
set -euox pipefail
unset GREP_OPTIONS
NOTOPIC="--config experimental.topic-mode=ignore"
compatbranches=`hg branches --quiet | grep 'mercurial-' | grep -v ':' | sort -n --reverse`
prev='stable'
for branch in $compatbranches; do
hg up $branch
hg merge $prev
hg commit -m "test-compat: merge $prev into $branch"
prev=$branch
done