directaccess: fix uses of commands.status() that don't go through flag parsing
When `commands.commit.post-status` is enabled, after commit/amend,
commands.status() is called without any revs argument, which means that status
gets None instead of an empty list like it would receive if the user had invoked
this on the commandline. With the `experimental.directaccess` config enabled,
this gets passed to `unhidehashlikerevs`, which didn't previously handle None,
but now should.
Differential Revision: https://phab.mercurial-scm.org/D11883
==========================================================
Test file dedicated to checking side-data related behavior
==========================================================
Check data can be written/read from sidedata
============================================
$ cat << EOF >> $HGRCPATH
> [extensions]
> testsidedata=$TESTDIR/testlib/ext-sidedata.py
> EOF
$ hg init test-sidedata --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data
$ cd test-sidedata
$ echo aaa > a
$ hg add a
$ hg commit -m a --traceback
$ echo aaa > b
$ hg add b
$ hg commit -m b
$ echo xxx >> a
$ hg commit -m aa
$ hg debugsidedata -c 0
2 sidedata entries
entry-0001 size 4
entry-0002 size 32
$ hg debugsidedata -c 1 -v
2 sidedata entries
entry-0001 size 4
'\x00\x00\x006'
entry-0002 size 32
'\x98\t\xf9\xc4v\xf0\xc5P\x90\xf7wRf\xe8\xe27e\xfc\xc1\x93\xa4\x96\xd0\x1d\x97\xaaG\x1d\xd7t\xfa\xde'
$ hg debugsidedata -m 2
2 sidedata entries
entry-0001 size 4
entry-0002 size 32
$ hg debugsidedata a 1
2 sidedata entries
entry-0001 size 4
entry-0002 size 32
Check upgrade behavior
======================
Right now, sidedata has not upgrade support
Check that we can upgrade to sidedata
-------------------------------------
$ hg init up-no-side-data --config experimental.revlogv2=no
$ hg debugformat -v -R up-no-side-data
format-variant repo config default
fncache: yes yes yes
dirstate-v2: no no no
dotencode: yes yes yes
generaldelta: yes yes yes
share-safe: no no no
sparserevlog: yes yes yes
persistent-nodemap: no no no (no-rust !)
persistent-nodemap: yes yes no (rust !)
copies-sdc: no no no
revlog-v2: no no no
changelog-v2: no no no
plain-cl-delta: yes yes yes
compression: zlib zlib zlib (no-zstd !)
compression: zstd zstd zstd (zstd !)
compression-level: default default default
$ hg debugformat -v -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data
format-variant repo config default
fncache: yes yes yes
dirstate-v2: no no no
dotencode: yes yes yes
generaldelta: yes yes yes
share-safe: no no no
sparserevlog: yes yes yes
persistent-nodemap: no no no (no-rust !)
persistent-nodemap: yes yes no (rust !)
copies-sdc: no no no
revlog-v2: no yes no
changelog-v2: no no no
plain-cl-delta: yes yes yes
compression: zlib zlib zlib (no-zstd !)
compression: zstd zstd zstd (zstd !)
compression-level: default default default
$ hg debugupgraderepo -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data > /dev/null
Check that we can downgrade from sidedata
-----------------------------------------
$ hg init up-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data
$ hg debugformat -v -R up-side-data
format-variant repo config default
fncache: yes yes yes
dirstate-v2: no no no
dotencode: yes yes yes
generaldelta: yes yes yes
share-safe: no no no
sparserevlog: yes yes yes
persistent-nodemap: no no no (no-rust !)
persistent-nodemap: yes yes no (rust !)
copies-sdc: no no no
revlog-v2: yes no no
changelog-v2: no no no
plain-cl-delta: yes yes yes
compression: zlib zlib zlib (no-zstd !)
compression: zstd zstd zstd (zstd !)
compression-level: default default default
$ hg debugformat -v -R up-side-data --config experimental.revlogv2=no
format-variant repo config default
fncache: yes yes yes
dirstate-v2: no no no
dotencode: yes yes yes
generaldelta: yes yes yes
share-safe: no no no
sparserevlog: yes yes yes
persistent-nodemap: no no no (no-rust !)
persistent-nodemap: yes yes no (rust !)
copies-sdc: no no no
revlog-v2: yes no no
changelog-v2: no no no
plain-cl-delta: yes yes yes
compression: zlib zlib zlib (no-zstd !)
compression: zstd zstd zstd (zstd !)
compression-level: default default default
$ hg debugupgraderepo -R up-side-data --config experimental.revlogv2=no > /dev/null