HomePhabricator

config: pass both relative and absolute paths to `include` callback

Authored by martinvonz.

Description

config: pass both relative and absolute paths to include callback

The include callback is responsible for loading configs from
%include statements. The callback currently gets passed the absolute
path [1] to the config to read. That is created by joining the dirname
of the file that contains the %include statement. For PyOxidizer
support, I'm trying to reduce dependence on paths. This patch helps
with that by passing the relative path found in the %include
statement (but with username expansion, etc.) to the include
callback. It also turns out that the existing callers can easily adapt
to using the relative path. Coming patches will clean that up and then
we'll remove the absolute path from the callback.

[1] The "absolute path" bit is a bit of a lie -- it's going to be an
absolute path if the path that was passed into config.parse() was
absolute.

Differential Revision: https://phab.mercurial-scm.org/D8790