D5559: revlog: always process opener options

Yuya Nishihara yuya at tcha.org
Sat Jan 12 22:21:40 EST 2019


>   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 dda11e799529 uses.

```
$ mkdir .hg
```

This patch looks good as itself, but we need to resurrect some trick
to create a v0 revlog.


More information about the Mercurial-devel mailing list