Remove Settingslogic use
Today I learned that Settingslogic
inherits from Hash
and defines accessors for keys. Because we define default
as a Gitaly storage name, this causes Settingslogic
to redefine Hash#default
, which causes Hash#dig
to fail when the key doesn't exist: #285449 (comment 451533328).
This seems like a dangerous situation: if we ever have a key that conflicts with a Hash
method, the Settings
object may be calling redefined methods and cause strange failures such as the one I mentioned.
We might want to solve this by not inheriting directly from a Hash
, but export the []
, []=
, and to_h
methods.
!113040 (merged) will drop the use of Settingslogic
entirely.
Edited by Stan Hu