cache: introduce a changelogsourcebase class
This abstract class will help code that need a cache tracking the changelog
content (eg: the branchmap cache). The cache key used is the same as what the
branchmap uses.
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.
#require test-repo
Enable obsolescence to avoid the warning issue when obsmarker are found
$ cat << EOF >> $HGRCPATH
> [diff]
> git = yes
> [experimental]
> evolution=all
> EOF
Go back in the hg repo
$ cd $TESTDIR/..
$ for node in `hg log --rev 'not public() and ::. and not desc("# no-check-commit")' --template '{node|short}\n'`; do
> hg export $node | ${RUNTESTDIR}/../contrib/check-commit > ${TESTTMP}/check-commit.out
> if [ $? -ne 0 ]; then
> echo "Revision $node does not comply with rules"
> echo '------------------------------------------------------'
> cat ${TESTTMP}/check-commit.out
> echo
> fi
> done