[PATCH 2 of 2 stable v2] tests: prevent Git system and global configuration from loading

Manuel Jacob me at manueljacob.de
Wed Apr 19 15:21:30 UTC 2023


On 19/04/2023 16.27, Mads Kiilerich wrote:
> On 19/04/2023 15:14, Manuel Jacob wrote:
>> On 19/04/2023 14.27, Mads Kiilerich wrote:
>>> On 18/04/2023 20:35, Manuel Jacob wrote:
>>> ...
>>> I think this changeset should come first. As you say, it makes the 
>>> test work the same way everywhere. user.useconfigonly is probably 
>>> just one of many settings that could break it.
>>>
>>>
>>> If it still doesn't work for you with this change (without the 
>>> previous change), it can't be because your setup has 
>>> user.useconfigonly set. There must be some other explanation.
>>
>> If I have only this changeset without the parent, command `git commit 
>> -m "committed new 0" --author "User ǝɯɐᴎ <me at example.com>" 
>> "97u1nbm0setup.py"` fails with:
>>
>> Committer identity unknown
>>
>> *** Please tell me who you are.
>> ...
> 
> Ok, after experimenting and reading git man pages, the shortest and 
> clearest description seems to be:
> 
> The git commit --author option can tell git to use another name as 
> author when committing, but git still has to know the user to use as 
> committer (to be shown with --format=full).
> 
> Without any git user configuration (for example because there is no 
> ~/.gitconfig or because GIT_CONFIG_GLOBAL=/dev/null or because 
> user.useConfigOnly), commit will fail with some kind of error, even if 
> --author is specified.
> 
> But if EMAIL is set (and without user.useConfigOnly), it will use that 
> as username, apparently combined with the getpwnam gecos information.
> 
> 
> The following thus seems to works for me - no matter what global/system 
> git configuration I have:
> 
> GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null EMAIL='foo at bar' 
> git commit -m "committed new 0" --author "User ǝɯɐᴎ <me at example.com>"

On Arch Linux:

% git --version
git version 2.40.0
% GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null 
EMAIL='foo at bar' git commit -m "committed new 0" --author "User ǝɯɐᴎ 
<me at example.com>"
Committer identity unknown

*** Please tell me who you are.

Run

   git config --global user.email "you at 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.

fatal: empty ident name (for <foo at bar>) not allowed


On CentOS 7:

% git --version
git version 2.36.5
% GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null 
EMAIL='foo at bar' git commit -m "committed new 0" --author "User ǝɯɐᴎ 
<me at example.com>" 
 
Committer identity unknown 


*** Please tell me who you are.

Run

   git config --global user.email "you at 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.

fatal: empty ident name (for <foo at bar>) not allowed


But with openSUSE Leap 15.4 with git 2.35.3, it works (uses $USER as the 
name).

> Silently dropping the setting of EMAIL in the first changeset is thus a 
> bit risky. Could the consequences of that perhaps have interfered with 
> your testing?
> 
> /Mads
> 



More information about the kallithea-general mailing list