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