rust-revlog: fix RevlogEntry.data() for NULL_REVISION
Before this change, the pseudo-entry returned by `Revlog.get_entry` for
`NULL_REVISION` would trigger errors in application code using it.
For example, this fixes a crash spotted with changelog data
while implementing RHGitaly: `Changelog.data_for_rev(-1)` was already
returning the pseudo content as expected, e.g., for `hg log`, but
`Changelog.entry_for_rev(-1).data()` would still crash with
"corrupted revlog, hash check failed for revision -1". There is
an added test for this scenario.
$ cat >> $HGRCPATH << EOF
> [extensions]
> absorb=
> drawdag=$TESTDIR/drawdag.py
> EOF
$ hg init
$ hg debugdrawdag <<'EOS'
> C
> |
> B
> |
> A
> EOS
$ hg phase -r A --public -q
$ hg phase -r C --secret --force -q
$ hg update C -q
$ printf B1 > B
$ hg absorb -aq
$ hg log -G -T '{desc} {phase}'
@ C secret
|
o B draft
|
o A public