threads / discuss / 46096

How to avoid "Please tell me who you are..."?

Subject: How to avoid "Please tell me who you are..."?

## tl;dr

8 messages between Jun 2, 2017 and Jun 6, 2017.

replies: 7people: 4as markdown or json

Jeffrey Walton· Jun 2, 2017, 06:02 UTC · lore

I'm working on a test machine. It mostly needs to be a clone of upstream. On occasion it needs to test a particular commit.

When I attempt to test a commit it produces:
    $ git cherry-pick eb3b27a6a543
    *** Please tell me who you are.
    Run
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    to set your account's default identity.
    Omit --global to set the identity only in this repository.
This is a nameless test account, so there is no information to provide.
How do I tell Git to ignore these checks?
Thanks in advance.
Jeffrey Walton· Jun 2, 2017, 06:37 UTC · lore

Re: How to avoid "Please tell me who you are..."?

On Fri, Jun 2, 2017 at 2:30 AM, Davide Fiorentino <davide.fiorentino@gmail.com> wrote:

> Is there a reason why you don't want or can't set those details?
Well, they don't exist so there's nothing to set.

The machine below its a CubieBoard used for testing. I remote into it with test@. As a matter of policy, no check-ins occur on it. Other than the password database and authroized_keys file, there is no information on it to be lost or stolen.

Jeff
Show 25 quoted lines
> On June 2, 2017 7:02:22 AM GMT+01:00, Jeffrey Walton <noloader@gmail.com>
> wrote:
>>
>> I'm working on a test machine. It mostly needs to be a clone of
>> upstream. On occasion it needs to test a particular commit.
>>
>> When I attempt to test a commit it produces:
>>
>>     $ git cherry-pick eb3b27a6a543
>>
>>     *** Please tell me who you are.
>>
>>     Run
>>
>>       git config --global user.email "you@example.com"
>>       git config --global user.name "Your Name"
>>
>>     to set your account's default identity.
>>     Omit --global to set the identity only in this repository.
>>
>> This is a nameless test account, so there is no information to provide.
>>
>> How do I tell Git to ignore these checks?
>>
>> Thanks in advance.
Konstantin Khomoutov· Jun 2, 2017, 07:00 UTC · re: Jeffrey Walton · lore

Re: How to avoid "Please tell me who you are..."?

On Fri, Jun 02, 2017 at 02:02:22AM -0400, Jeffrey Walton wrote:
Show 8 quoted lines
> I'm working on a test machine. It mostly needs to be a clone of
> upstream. On occasion it needs to test a particular commit.
> 
> When I attempt to test a commit it produces:
> 
>     $ git cherry-pick eb3b27a6a543
> 
>     *** Please tell me who you are.
[...]
> This is a nameless test account, so there is no information to provide.
> 
> How do I tell Git to ignore these checks?
[...]
Show 6 quoted lines
> Well, they don't exist so there's nothing to set.
> 
> The machine below its a CubieBoard used for testing. I remote into it
> with test@. As a matter of policy, no check-ins occur on it. Other
> than the password database and authroized_keys file, there is no
> information on it to be lost or stolen.

`git cherry-pick` wants to record a commit. A commit in Git always possess the information on "the committer" -- whoever recorded the commit (it might be distinct from the commit author, as is the case with cherry-picking). There's no way to not set the committer.

I envision two ways to get around this situation:
1) Patch the ~/.whatevershellrc of your test account to set this
   information by setting and exporting the GIT_AUTHOR_NAME and
   GIT_AUTHOR_EMAIL env. variables (and may be others -- see the
   "git" manual page; run `git help git`).
   
   May be even add it in /etc/skel to make all accounts create inherit
   it.
2) Set these parameters in the repository you're working with.
   While Git suggests you to pass "--global" to the `git config`
   invocations, it's perfectly OK to use "--local" with them (which is
   IIRC the default, if not supplied) to make these settings be recorded
   in the repository's configuration rather than in ~/.gitconfig.
3) Pass these options explicitly to Git invocations or make a shell
   alias which would do so, like with
   function git() {
     command git \
		-c user.name='Joe Tester' \
		-c user.email=tester@acme.corp \
		"$@"
   }
I'd personally go with (2).
Jeffrey Walton· Jun 2, 2017, 07:07 UTC · re: Konstantin Khomoutov · lore

Re: How to avoid "Please tell me who you are..."?

On Fri, Jun 2, 2017 at 3:00 AM, Konstantin Khomoutov <kostix+git@007spb.ru> wrote:

Show 55 quoted lines
> On Fri, Jun 02, 2017 at 02:02:22AM -0400, Jeffrey Walton wrote:
>
>> I'm working on a test machine. It mostly needs to be a clone of
>> upstream. On occasion it needs to test a particular commit.
>>
>> When I attempt to test a commit it produces:
>>
>>     $ git cherry-pick eb3b27a6a543
>>
>>     *** Please tell me who you are.
> [...]
>> This is a nameless test account, so there is no information to provide.
>>
>> How do I tell Git to ignore these checks?
> [...]
>> Well, they don't exist so there's nothing to set.
>>
>> The machine below its a CubieBoard used for testing. I remote into it
>> with test@. As a matter of policy, no check-ins occur on it. Other
>> than the password database and authroized_keys file, there is no
>> information on it to be lost or stolen.
>
> `git cherry-pick` wants to record a commit.  A commit in Git always
> possess the information on "the committer" -- whoever recorded the
> commit (it might be distinct from the commit author, as is the case with
> cherry-picking).  There's no way to not set the committer.
>
> I envision two ways to get around this situation:
>
> 1) Patch the ~/.whatevershellrc of your test account to set this
>    information by setting and exporting the GIT_AUTHOR_NAME and
>    GIT_AUTHOR_EMAIL env. variables (and may be others -- see the
>    "git" manual page; run `git help git`).
>
>    May be even add it in /etc/skel to make all accounts create inherit
>    it.
>
> 2) Set these parameters in the repository you're working with.
>
>    While Git suggests you to pass "--global" to the `git config`
>    invocations, it's perfectly OK to use "--local" with them (which is
>    IIRC the default, if not supplied) to make these settings be recorded
>    in the repository's configuration rather than in ~/.gitconfig.
>
> 3) Pass these options explicitly to Git invocations or make a shell
>    alias which would do so, like with
>
>    function git() {
>      command git \
>                 -c user.name='Joe Tester' \
>                 -c user.email=tester@acme.corp \
>                 "$@"
>    }
>
> I'd personally go with (2).
Thanks.
Is there no switch? Its the most efficient way to accomplish the task.
Jeff
Junio C Hamano· Jun 2, 2017, 07:15 UTC · re: Jeffrey Walton · lore

Re: How to avoid "Please tell me who you are..."?

Jeffrey Walton <noloader@gmail.com> writes:
> Is there no switch? Its the most efficient way to accomplish the task.

This is a safety to help normal human users from hurting themselves, and it does not make any sense to have "I have no name, so record garbage, please" option, switch or setting that is different from "Here is the name I want you to use when recording things".

The switch _is_ to set the names with whatever standard way.  
Ævar Arnfjörð Bjarmason· Jun 2, 2017, 07:38 UTC · re: Junio C Hamano · lore

Re: How to avoid "Please tell me who you are..."?

On Fri, Jun 2, 2017 at 9:15 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 10 quoted lines
> Jeffrey Walton <noloader@gmail.com> writes:
>
>> Is there no switch? Its the most efficient way to accomplish the task.
>
> This is a safety to help normal human users from hurting themselves,
> and it does not make any sense to have "I have no name, so record
> garbage, please" option, switch or setting that is different from
> "Here is the name I want you to use when recording things".
>
> The switch _is_ to set the names with whatever standard way.

Presumably OP doesn't want to mess with the env for whatever reason, in that case:

    git -c user.name=Nobody -c user.email=nobody@example.com
cherry-pick <commit>
Junio C Hamano· Jun 2, 2017, 23:50 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: How to avoid "Please tell me who you are..."?

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 17 quoted lines
> On Fri, Jun 2, 2017 at 9:15 AM, Junio C Hamano <gitster@pobox.com> wrote:
>> Jeffrey Walton <noloader@gmail.com> writes:
>>
>>> Is there no switch? Its the most efficient way to accomplish the task.
>>
>> This is a safety to help normal human users from hurting themselves,
>> and it does not make any sense to have "I have no name, so record
>> garbage, please" option, switch or setting that is different from
>> "Here is the name I want you to use when recording things".
>>
>> The switch _is_ to set the names with whatever standard way.
>
> Presumably OP doesn't want to mess with the env for whatever reason,
> in that case:
>
>     git -c user.name=Nobody -c user.email=nobody@example.com
> cherry-pick <commit>

Exactly. That is what I meant as one of the "whatever standard way".

Junio C Hamano· Jun 6, 2017, 22:32 UTC · re: Jeffrey Walton · lore

Re: How to avoid "Please tell me who you are..."?

Jeffrey Walton <noloader@gmail.com> writes:
Show 10 quoted lines
> On Fri, Jun 2, 2017 at 2:30 AM, Davide Fiorentino
> <davide.fiorentino@gmail.com> wrote:
>> Is there a reason why you don't want or can't set those details?
>
> Well, they don't exist so there's nothing to set.
>
> The machine below its a CubieBoard used for testing. I remote into it
> with test@. As a matter of policy, no check-ins occur on it. Other
> than the password database and authroized_keys file, there is no
> information on it to be lost or stolen.

One thing I forgot to ask you. Are you reporting "I have used this exact procedure to set up a test machine in the past and did not have this problem, but with newer Git I get this message and cannot cherry-pick or tag or do anything"? Or is this something you noticed with a version of Git you happened to have?

I am trying to make sure this is not reporting a regression, as I am not aware of any recent change that wanted to make the "unconfigured user" detection stricter than before.

Thanks.

← back to recent threads