clfilter: handle non contiguous iteration in `revlov.headrevs`
This prepares changelog level filtering. We can't assume that any revision can
be heads because filtered revisions need to be excluded.
New algorithm:
- All revisions now start as "non heads",
- every revision we iterate over is made candidate head,
- parents of iterated revisions are definitely not head.
Filtered revisions are never iterated over and never considered as candidate
head.
$ "$TESTDIR/hghave" inotify || exit 80
$ hg init
$ touch a b
$ hg add a b
$ rm b
status without inotify
$ hg st
A a
! b
$ echo "[extensions]" >> $HGRCPATH
$ echo "inotify=" >> $HGRCPATH
inserve
$ hg inserve -d --pid-file=hg.pid 2>&1
$ cat hg.pid >> "$DAEMON_PIDS"
status
$ hg st
A a
! b
? hg.pid
$ sleep 1
Are we able to kill the service? if not, the service died on some error
$ kill `cat hg.pid`