D5559: revlog: always process opener options
yuja (Yuya Nishihara)
phabricator at mercurial-scm.org
Sat Jan 12 22:25:03 EST 2019
yuja added a comment.
> 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.
Well, there was a trick to create a v0 repo, which https://phab.mercurial-scm.org/rHGdda11e79952959a87298e5e094bf087c1837a0a3 uses.
$ mkdir .hg
This patch looks good as itself, but we need to resurrect some trick
to create a v0 revlog.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5559
To: indygreg, #hg-reviewers
Cc: yuja, mercurial-devel
More information about the Mercurial-devel
mailing list