If I'm reading this right, here's how the switch works:

* (no options) -> does not set core.ignorecase on the repo
* `--ignorecase` -> sets `core.ignorecase=false`
* `--ignorecase=true` -> sets `core.ignorecase=true`
* `--ignorecase=false` -> sets `core.ignorecase=false`

The second one seems weird to me. I would expect to say `--ignorecase` to make `core.ignorecase=true`.