git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: General support for ! in git-config values

From
Ddemerphq <demerphq@gmail.com>
Date
Feb 2, 2012, 00:16 UTC
Message-ID
<CANgJU+X+UZmycwE6xkJ-zHfT7ai6nV9zbeR4WYnAXczL5JtqjA@mail.gmail.com>
In-Reply-To
<7v62fq2o03.fsf@alter.siamese.dyndns.org>
On 1 February 2012 23:21, Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> 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/"
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 20 in “General support for ! in git-config values”
  1. Ævar Arnfjörð BjarmasonFeb 1, 2012
  2. Jeff KingFeb 1, 2012
  3. Ævar Arnfjörð BjarmasonFeb 1, 2012
  4. Junio C HamanoFeb 1, 2012
  5. demerphqFeb 2, 2012
  6. Junio C HamanoFeb 2, 2012
  7. demerphqFeb 2, 2012
  8. Junio C HamanoFeb 2, 2012
  9. demerphqFeb 2, 2012
  10. Jeff KingFeb 2, 2012
  11. demerphqFeb 2, 2012
  12. Jeff KingFeb 2, 2012
  13. demerphqFeb 2, 2012
  14. Kyle MoffettFeb 3, 2012
  15. Junio C HamanoFeb 3, 2012
  16. Kyle MoffettFeb 3, 2012
  17. Jeff KingFeb 3, 2012
  18. Jeff KingFeb 3, 2012
  19. Junio C HamanoFeb 2, 2012
  20. demerphqFeb 2, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.