On Sat, Jul 16, 2016 at 03:30:45PM +0200, Johannes Schindelin wrote: > > >> + ; include if $GIT_DIR is /path/to/foo/.git > > >> + [include "gitdir:/path/to/foo/.git"] > > >> + path = /path/to/foo.inc > > > > > > I find this way to specify a conditional unintuitive. Reading > > > "gitdir:/path/to/foo/.git" suggests to me that the Git dir is *re-set*, > > > not that this is a condition. > > > > Well.. to me it's no different than [remote "foo"] to apply stuff to "foo". > > Except that "include" is an imperative and "remote" is not. In the very original version of config includes, I had planned out: [include-if "...some condition..."] path = ... Later, since "[include ...]" had no other meaning, I think it got shortened in discussion. But it would be easy to accept include-if (or even accept either, for maximum confusion :) ). > Quite frankly, this conditional business scares me. If you introduce it > for [include], users will want it for every config setting. And the > current syntax is just not up to, say, making user.name conditional on > anything. They already have it for every config setting with this. The reason to add it to [include] and not as a general syntax is that you can put user.name into your included file, and then conditionally include it. That is not as nice as "if this then that" in a single file, but it is backwards compatible with the existing syntax, and is probably fine in practice. Each included file becomes a "profile" of multiple settings that you apply. > As an alternative solution to your problem, you could of course avoid all > conditional includes. Simply by adding the include.path settings > explicitly to the configs that require them. Now, that would make reasoning > and trouble-shooting simple, wouldn't it? > > And the most beautiful aspect of it: no patch needed. And you can just "cat" the included files directly into your .git/config. We don't even need include.path. Or ~/.gitconfig, for that matter. But sometimes dynamic things are convenient. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html