Respect a new optional file $site/etc/All-Projects/project.config which
serves as the base config file for project.config in All-Projects.
It may seem odd to introduce a level of inheritance above All-Projects:
if you want to change a default value and have it inherited across all
projects on your site, it should just go in All-Projects, right? Indeed,
that remains the recommended approach for a single server.
However, in the case where an administrator manages multiple Gerrit
servers, updating the defaults across all servers would require
scripting git commits and/or pushes to multiple All-Projects repos. Such
an administrator is likely already using Puppet or similar to manage
gerrit.config, so a simpler approach for them would be to edit a single
file and then push it out to all servers. This change gives them that
option.
Use a separate file from gerrit.config to maintain a clear distinction
between server-type options and project-type options. There is already
some ad-hoc "inheritance" between gerrit.config and project.config, for
example of receive.maxObjectSizeLimit. We would like to avoid the need
for such ad-hoc code, providing instead a more general mechanism.
The location under etc/All-Projects could eventually contain more files
that could provide defaults for other files in All-Projects. However,
defining inheritance semantics for file types other than git config
files is nontrivial, so punt for now, documenting the limitations.
Change-Id: I572dbfb6b57c6bb45adc96dc5b10071299deeb0d