threads / discuss / 16592

git-gui: Warn when username and e-mail address is unconfigured?

Subject: git-gui: Warn when username and e-mail address is unconfigured?

## tl;dr

10 messages between Dec 4, 2008 and Dec 12, 2008.

replies: 9people: 6as markdown or json

Peter Krefting· Dec 4, 2008, 10:43 UTC · lore
Hi!

When using Git on Windows, it doesn't pick up a user name from the environment, which leads to commits made by git gui (and probably by git itself) to show up as being made by "unknown <username@.(none)>" (where "username" is the Windows account name).

Is it possible to add a warning to git-gui the first time a commit is attempted if the e-mail address is not configured, and have the user open the configuration dialogue to set up the name properly?

-- 
\\// Peter - http://www.softwolves.pp.se/
Jeremy Ramer· Dec 4, 2008, 16:05 UTC · re: Peter Krefting · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Thu, Dec 4, 2008 at 3:43 AM, Peter Krefting <peter@softwolves.pp.se> wrote:
Show 6 quoted lines
> Hi!
>
> When using Git on Windows, it doesn't pick up a user name from the
> environment, which leads to commits made by git gui (and probably by
> git itself) to show up as being made by "unknown <username@.(none)>"
> (where "username" is the Windows account name).

That's strange. I am using git 1.6.0.4 on cygwin and I get a warning message every time I start git gui. I actually find this really annoying and would like a way to turn this warning message off.

Show 12 quoted lines
>
> Is it possible to add a warning to git-gui the first time a commit is
> attempted if the e-mail address is not configured, and have the user
> open the configuration dialogue to set up the name properly?
>
> --
> \\// Peter - http://www.softwolves.pp.se/
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Sverre Rabbelier· Dec 4, 2008, 19:04 UTC · re: Jeremy Ramer · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Thu, Dec 4, 2008 at 17:05, Jeremy Ramer <jdramer@gmail.com> wrote:
> That's strange. I am using git 1.6.0.4 on cygwin and I get a warning
> message every time I start git gui.  I actually find this really
> annoying and would like a way to turn this warning message off.

git config --global user.name "Your Name" git config --global user.email "you@example.com"

-- 
Cheers,

Sverre Rabbelier
Jeremy Ramer· Dec 4, 2008, 20:54 UTC · re: Sverre Rabbelier · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Thu, Dec 4, 2008 at 12:04 PM, Sverre Rabbelier <alturin@gmail.com> wrote:
Show 8 quoted lines
> On Thu, Dec 4, 2008 at 17:05, Jeremy Ramer <jdramer@gmail.com> wrote:
>> That's strange. I am using git 1.6.0.4 on cygwin and I get a warning
>> message every time I start git gui.  I actually find this really
>> annoying and would like a way to turn this warning message off.
>
> git config --global user.name "Your Name"
> git config --global user.email "you@example.com"
>
I have done that.  I still get the warning message every time I start git gui.
Alexander Gavrilov· Dec 4, 2008, 21:30 UTC · re: Jeremy Ramer · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Thursday 04 December 2008 23:54:00 Jeremy Ramer wrote:
Show 12 quoted lines
> On Thu, Dec 4, 2008 at 12:04 PM, Sverre Rabbelier <alturin@gmail.com> wrote:
> > On Thu, Dec 4, 2008 at 17:05, Jeremy Ramer <jdramer@gmail.com> wrote:
> >> That's strange. I am using git 1.6.0.4 on cygwin and I get a warning
> >> message every time I start git gui.  I actually find this really
> >> annoying and would like a way to turn this warning message off.
> >
> > git config --global user.name "Your Name"
> > git config --global user.email "you@example.com"
> >
> 
> I have done that.  I still get the warning message every time I start git gui.
> --

What does it say precisely? I.e. is it perhaps the warning about subprocesses possibly ignoring the value of environment variables?

Alexander
Junio C Hamano· Dec 4, 2008, 21:34 UTC · re: Jeremy Ramer · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

"Jeremy Ramer" <jdramer@gmail.com> writes:
Show 11 quoted lines
> On Thu, Dec 4, 2008 at 12:04 PM, Sverre Rabbelier <alturin@gmail.com> wrote:
>> On Thu, Dec 4, 2008 at 17:05, Jeremy Ramer <jdramer@gmail.com> wrote:
>>> That's strange. I am using git 1.6.0.4 on cygwin and I get a warning
>>> message every time I start git gui.  I actually find this really
>>> annoying and would like a way to turn this warning message off.
>>
>> git config --global user.name "Your Name"
>> git config --global user.email "you@example.com"
>>
>
> I have done that.  I still get the warning message every time I start git gui.

I do not use Windows, and I do not run git-gui, so I am guessing only from the source. Are you talking about the message composed by this part?

    # -- Warn the user about environmental problems.  Cygwin's Tcl
    #    does *not* pass its env array onto any processes it spawns.
    #    This means that git processes get none of our environment.
    #
    if {[is_Cygwin]} {
            set ignored_env 0
            set suggest_user {}
            set msg [mc "Possible environment issues exist.
    The following environment variables are probably
    going to be ignored by any Git subprocess run
    by %s:
    " [appname]]
The logic to produce the error message does look somewhat screwy.

It checks a selected set of variables whose name begin with GIT_ in the environment, and if it finds any, it gives the above message. In addition, if GIT_{AUTHOR,COMMITTER}_{EMAIL,NAME} are among them, it also adds this to the message:

                    if {$suggest_user ne {}} {
                            append msg [mc "
    A good replacement for %s
    is placing values for the user.name and
    user.email settings into your personal
    ~/.gitconfig file.
    " $suggest_user]
There are two and half issues about this code.
 (1) When it prepares additional message about user.{email,name},
     it does not check if the user already has them defined.  IOW, there
     is no way other than unsetenv before running git-gui to squelch this
     part of the message.
 (2) For other environment variables, such as GIT_PAGER, it does not offer
     alternatives, such as core.pager.  Again, there is no way other than
     unsetenv to squelch the warning.

An excuse to both of the above could be that the warning is not about the user having environment variables that can be discarded, but about brokenness of Cygwin Tcl envirnonment that discards them. But if that is the case, there is this other half issue:

 (3) The warning does not trigger if the environment is not set when this
     check is made.  Now I do not know if git-gui tries to spawn
     subprocesses with its own (customized) environment settings (e.g. you
     would need to be able to run git-commit-tree with modified
     GIT_AUTHOR_NAME if you want to use the lowlevel plumbing to create a
     new commit and lie about the author identity), but if it does, the
     warning does not trigger.
Jeremy Ramer· Dec 4, 2008, 23:58 UTC · re: Junio C Hamano · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Thu, Dec 4, 2008 at 2:34 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 31 quoted lines
> "Jeremy Ramer" <jdramer@gmail.com> writes:
>
>> On Thu, Dec 4, 2008 at 12:04 PM, Sverre Rabbelier <alturin@gmail.com> wrote:
>>> On Thu, Dec 4, 2008 at 17:05, Jeremy Ramer <jdramer@gmail.com> wrote:
>>>> That's strange. I am using git 1.6.0.4 on cygwin and I get a warning
>>>> message every time I start git gui.  I actually find this really
>>>> annoying and would like a way to turn this warning message off.
>>>
>>> git config --global user.name "Your Name"
>>> git config --global user.email "you@example.com"
>>>
>>
>> I have done that.  I still get the warning message every time I start git gui.
>
> I do not use Windows, and I do not run git-gui, so I am guessing only from
> the source.  Are you talking about the message composed by this part?
>
>    # -- Warn the user about environmental problems.  Cygwin's Tcl
>    #    does *not* pass its env array onto any processes it spawns.
>    #    This means that git processes get none of our environment.
>    #
>    if {[is_Cygwin]} {
>            set ignored_env 0
>            set suggest_user {}
>            set msg [mc "Possible environment issues exist.
>
>    The following environment variables are probably
>    going to be ignored by any Git subprocess run
>    by %s:
>
>    " [appname]]
Yes, that does appear to be the message I get, with the following
environment variables:
- GIT_AUTHOR_EMAIL
- GIT_COMMITTER_NAME
- GIT_COMMITER_EMAIL
- GIT_AUTHOR_NAME

Now that I look closer I see that I am setting these in my .bashrc file. When I first started using git a year ago I was given the impression that these were needed. But I see that that is no longer the case since I use the config:

git config --global user.name "Your Name" git config --global user.email "you@example.com"

Removing them from my .bashrc removes the warning. In hindsight the warning should have clued me in, but I've been seeing that message since I first started using git on Cygwin so I figured it was a cygwin issue that I couldn't do anything about.

Show 40 quoted lines
>
> The logic to produce the error message does look somewhat screwy.
>
> It checks a selected set of variables whose name begin with GIT_ in the
> environment, and if it finds any, it gives the above message.  In
> addition, if GIT_{AUTHOR,COMMITTER}_{EMAIL,NAME} are among them, it also
> adds this to the message:
>
>                    if {$suggest_user ne {}} {
>                            append msg [mc "
>    A good replacement for %s
>    is placing values for the user.name and
>    user.email settings into your personal
>    ~/.gitconfig file.
>    " $suggest_user]
>
> There are two and half issues about this code.
>
>  (1) When it prepares additional message about user.{email,name},
>     it does not check if the user already has them defined.  IOW, there
>     is no way other than unsetenv before running git-gui to squelch this
>     part of the message.
>
>  (2) For other environment variables, such as GIT_PAGER, it does not offer
>     alternatives, such as core.pager.  Again, there is no way other than
>     unsetenv to squelch the warning.
>
> An excuse to both of the above could be that the warning is not about the
> user having environment variables that can be discarded, but about
> brokenness of Cygwin Tcl envirnonment that discards them.  But if that is
> the case, there is this other half issue:
>
>  (3) The warning does not trigger if the environment is not set when this
>     check is made.  Now I do not know if git-gui tries to spawn
>     subprocesses with its own (customized) environment settings (e.g. you
>     would need to be able to run git-commit-tree with modified
>     GIT_AUTHOR_NAME if you want to use the lowlevel plumbing to create a
>     new commit and lie about the author identity), but if it does, the
>     warning does not trigger.
>
I agree that the logic could using improvement.
Alexander Gavrilov· Dec 5, 2008, 11:01 UTC · re: Jeremy Ramer · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Fri, Dec 5, 2008 at 2:58 AM, Jeremy Ramer <jdramer@gmail.com> wrote:
Show 20 quoted lines
> Yes, that does appear to be the message I get, with the following
> environment variables:
> - GIT_AUTHOR_EMAIL
> - GIT_COMMITTER_NAME
> - GIT_COMMITER_EMAIL
> - GIT_AUTHOR_NAME
>
> Now that I look closer I see that I am setting these in my .bashrc
> file.  When I first started using git a year ago I was given the
> impression that these were needed. But I see that that is no longer
> the case since I use the config:
>
> git config --global user.name "Your Name"
> git config --global user.email "you@example.com"
>
> Removing them from my .bashrc removes the warning.  In hindsight the
> warning should have clued me in, but I've been seeing that message
> since I first started using git on Cygwin so I figured it was a cygwin
> issue that I couldn't do anything about.
>

I wonder if what the warning says is still true. It's 2 years since it was added, so the issue might have been fixed.

If you run "GIT_AUTHOR_NAME=foobar git gui", and make a commit, does it set the author name to 'foobar'?

Alexander
Jeremy Ramer· Dec 5, 2008, 20:18 UTC · re: Alexander Gavrilov · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On Fri, Dec 5, 2008 at 4:01 AM, Alexander Gavrilov <angavrilov@gmail.com> wrote:
Show 27 quoted lines
> On Fri, Dec 5, 2008 at 2:58 AM, Jeremy Ramer <jdramer@gmail.com> wrote:
>> Yes, that does appear to be the message I get, with the following
>> environment variables:
>> - GIT_AUTHOR_EMAIL
>> - GIT_COMMITTER_NAME
>> - GIT_COMMITER_EMAIL
>> - GIT_AUTHOR_NAME
>>
>> Now that I look closer I see that I am setting these in my .bashrc
>> file.  When I first started using git a year ago I was given the
>> impression that these were needed. But I see that that is no longer
>> the case since I use the config:
>>
>> git config --global user.name "Your Name"
>> git config --global user.email "you@example.com"
>>
>> Removing them from my .bashrc removes the warning.  In hindsight the
>> warning should have clued me in, but I've been seeing that message
>> since I first started using git on Cygwin so I figured it was a cygwin
>> issue that I couldn't do anything about.
>>
>
> I wonder if what the warning says is still true. It's 2 years since
> it was added, so the issue might have been fixed.
>
> If you run "GIT_AUTHOR_NAME=foobar git gui", and make a commit,
> does it set the author name to 'foobar'?

I ran export GIT_AUTHOR_NAME="foobar git gui" and then made a commit with git gui and it did not set the author name to foobar. It used my global config name.

>
> Alexander
>
jidanni@jidanni.org· Dec 12, 2008, 02:37 UTC · re: Jeremy Ramer · lore

Re: git-gui: Warn when username and e-mail address is unconfigured?

On git-commit-tree(1)
  DIAGNOSTICS
       You don't exist. Go away!
           The passwd(5) gecos field couldn't be read
It should say that null is OK though.
jidanni:x:1000:1000:,,,:/home/jidanni:/bin/bash
gives
 Committer: jidanni <jidanni@jidanni.org>
which is what I want. No old fashioned English name for me.

← back to recent threads