> I read through this and came up with the below as a proposed squash-in > just while reading through it. These may or may not help. Changes: > > * There was some needless "$(pwd)" in the tests Ah, thanks for catching that. > * Inlining the "remote_urls" in the struct makes its management easier; > and the free/NULL checks just check .nr now, and string_list_clear() can be > unconditional. I don't think we can do this - nr might still be 0 after a scan if we don't have remote URLs for some reason, so we still need to distinguish between not-scanned and scanned-with-zero-URLs. > * Created a include_by_remote_url() function. Makes the overall diff smaller > since you don't need to add braces to everything in include_condition_is_true() Ah, good idea. I'll do this. > Other comments (not related to the below): > > * It would be nice if e.g. the "includeIf.hasconfig:remote.*.url globs" test > were split up by condition, but maybe that's a hassle (would need a small helper). > > Just something that would have helped while hacking on this, i.e. now most of it > was an all-or-nothing failure & peek at the trace output What do you mean by condition? There seems to only be one condition (whether the URL is there or not), unless you were thinking of smaller subdivisions. > * Your last test appears to entirely forbid recursion. I.e. we die if you include config > which in turn tries to use this include mechanism, right? > > That's probably wise, and it is explicitly documented. > > But as far as the documentation about this being a forward-compatible facility, do we > think that this limitation would apply to any future config key? I.e. if I include based > on "user.email" nothing in that to-be-included can set user.email? > > That's probably OK, just wondering. In any case it can always be expanded later on. We can decide later what the future facility will be, but I envision that we will not allow included files to set config that can affect any include directives in use. So, for example, if I have a user.email-based include, none of my config-conditionally included files can set user.email.