I used this script to make sure that removing `default.conf.php` won't change things for installs which are still using config files:
```
<?php
require_once 'scripts/__init_script__.php';
$file = require 'conf/default.conf.php';
$global = new PhabricatorConfigDefaultSource();
$global_values = $global->getAllKeys();
foreach ($file as $key => $value) {
$global_value = idx($global_values, $key, (object)array());
if ($value !== $global_value) {
echo "{$key}\n\n";
echo "FILE VALUE\n";
var_dump($value);
echo "\n";
echo "DEFAULT VALUE\n";
var_dump($global_value);
return;
}
}
```
These were the keys that had issues:
- `log.access.format` Not specified in default.conf.php, safe to speciy.
- `mysql.pass` Empty string in file, null in global. Same effect.
- `metamta.default-addrress` One used `noreply@example.com`, one `noreply@phabricator.example.com`. These are just human-readable examples so it's safe to change behavior.
- `metamta.domain` same as above, `example.com` vs `phabricator.example.com`.
- `phpmailer.smtp-host` One used null, one empty string.
- `phpmailer.smtp-protocol` As above.
- `files.viewable-mime-types` File version is out of date.
- `repository.default-local-path` Null in file, set in global. This is correct to set to a default value now.
- `pygments.dropdown-choices` File version is out of date.
- `environment.append-paths` File version is empty, global version adds common paths. This //could// change behavior, but the web behavior is better and more reasonable in general, and a system would need to be configured in a very bizarre way for this to be relevant.