On 1 February 2012 23:21, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >>> I.e., everything pertaining to "!" happens after we get the config >>> string. So what is it that you want "git config --with-exec" to do? >> >> I agree that that's how it should work, I just suggested --with-exec >> in case anyone complained about the backwards compatibility issue of >> changing the meaning of "!" for existing configs. > > Now you made me utterly confused. > > What "backwards compatibility" issue do you have in mind? If I name > myself '!me' with "user.name = !me", do I suddenly break backwards > compatibility of Git with previous versions somehow? If so how? (I am piping up because Ævar and I discussed this idea earlier today while we discussed git-deploy) If Ævar's proposal was implemented without a --with-exec switch then user.name = !me would set your name to the result of executing the "me" command, which likely would have the same result as not having set your name at all, but presumably with a warning about a bad command. > The --with-exec option you talk about seems to me the option about the > backward compatibility of the _calling script_ of "git config". By backward compatibility he meant that anything not providing the --with-exec option to git-config would continue to behave as before, and anything that did would get the new more powerful behavior, where ! at the front of a value signified that it meant a command to be executed whose output would be used as the value. I think it would be convenient to be able to enable this in the config file itself. Consider a bunch of devs share a box. Their full name and email address can be located via a LDAP lookup. So if we could enable Ævar's proposal in the config then we can automagically have their commits have the correct username and email if we were to put in the /etc/gitconfig something like this: config.enable_executable_options=true user.name=!ldap_full_name user.email=!ldap_email So now, user.name and user.email don't have to be configured by the users. They just get an account on the box and all their commits have the right details, no fuss. I am aware that there are other ways of solving /this/ particular problem, so it specifically is not a big deal, but still I think the idea makes a lot of sense, I can imagine it being used in a lot of interesting ways that are not obvious right away. cheers, Yves -- perl -Mre=debug -e "/just|another|perl|hacker/" -- 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