HomePhabricator

revlog: always process opener options

Authored by indygreg.

Description

revlog: always process opener options

I'm not sure when `opener.options` would ever be explicitly
set to None. It is definitely not possible to construct a repo
this way because `localrepo.resolvestorevfsoptions()` always
returns a dict and `localrepo.makelocalrepository()` always
sets `opener.options` to this value.

Because we always execute this code now, if options are empty
we defaulted to creating version 0 revlogs. So we had to change
the code slightly to fall back to the default revlog version
and flags.

As astute reader will note that it is not possible to create
version 0 revlogs now. However, I don't think it was possible
before, as this required `opener.options` being unset, which
I don't think was possible. I suspect this means our test
coverage for version 0 revlog repositories is possibly
non-existent! Since I don't see a config option to disable
revlog v1, I'm not even sure if we had a way to create new
repos with version 0 revlogs! Who knows.

Differential Revision: https://phab.mercurial-scm.org/D5559