threads / bug / 60194

Potential bug in `git checkout --quiet`

Subject: Potential bug in `git checkout --quiet`

## tl;dr

3 messages between Sep 4, 2023 and Sep 5, 2023.

replies: 2people: 3as markdown or json

Radovan Haluška· Sep 4, 2023, 12:56 UTC · lore
Hello,
I believe I have found a bug in the `git checkout —quiet` command. Below, you can find the output of `git bugreport`. Thank you

Best, Radovan Haluska

——

Thank you for filling out a Git bug report! Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue)
```
git clone --quiet --branch master --depth 1 --no-checkout --filter blob:none \
    git@github.com:acatai/Strategy-Card-Game-AI-Competition.git locm-agents
cd locm-agents
git sparse-checkout set --no-cone
git sparse-checkout add 'contest-2022-08-COG/ByteRL'
git checkout --quiet
```
What did you expect to happen? (Expected behavior)
I expected to receive no output from any of the commands above.
What happened instead? (Actual behavior)
I received an output from the last command even though the `--quiet` switch was specified
What's different between what you expected and what actually happened?
This shouldn't have been printed on the screen:

''' remote: Enumerating objects: 28, done. remote: Counting objects: 100% (28/28), done. remote: Compressing objects: 100% (27/27), done. remote: Total 28 (delta 0), reused 25 (delta 0), pack-reused 0 Receiving objects: 100% (28/28), 31.40 MiB | 4.94 MiB/s, done. '''

Anything else you want to add:

Please review the rest of the bug report below. You can delete any lines you don't wish to share.

[System Info] git version: git version 2.42.0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh feature: fsmonitor--daemon uname: Darwin 22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:51:50 PDT 2023; root:xnu-8796.121.2~5/RELEASE_X86_64 x86_64 compiler info: clang: 14.0.3 (clang-1403.0.22.14.1) libc info: no libc information available $SHELL (typically, interactive shell): /bin/zsh

[Enabled Hooks] not run from a git repository - no hooks to show

Bagas Sanjaya· Sep 4, 2023, 13:36 UTC · re: Radovan Haluška · lore

Re: Potential bug in `git checkout --quiet`

On Mon, Sep 04, 2023 at 02:56:37PM +0200, Radovan Haluška wrote:
Show 31 quoted lines
> What did you do before the bug happened? (Steps to reproduce your issue)
> 
> ```
> git clone --quiet --branch master --depth 1 --no-checkout --filter blob:none \
>     git@github.com:acatai/Strategy-Card-Game-AI-Competition.git locm-agents
> cd locm-agents
> git sparse-checkout set --no-cone
> git sparse-checkout add 'contest-2022-08-COG/ByteRL'
> git checkout --quiet
> ```
> 
> What did you expect to happen? (Expected behavior)
> 
> I expected to receive no output from any of the commands above.
> 
> What happened instead? (Actual behavior)
> 
> I received an output from the last command even though the `--quiet` switch was specified
> 
> What's different between what you expected and what actually happened?
> 
> This shouldn't have been printed on the screen:
> 
> '''
> remote: Enumerating objects: 28, done.
> remote: Counting objects: 100% (28/28), done.
> remote: Compressing objects: 100% (27/27), done.
> remote: Total 28 (delta 0), reused 25 (delta 0), pack-reused 0
> Receiving objects: 100% (28/28), 31.40 MiB | 4.94 MiB/s, done.
> '''
> 

I can reproduce this bug on v2.40.0 using your reproducer above. Yet, `git checkout --quiet` on normal repos (not partial ones) works as expected. Cc'ing people working on sparse-checkout recently.

Thanks.
-- 
An old man doll... just what I always wanted! - Clara
Junio C Hamano· Sep 5, 2023, 22:36 UTC · re: Bagas Sanjaya · lore

Re: Potential bug in `git checkout --quiet`

Bagas Sanjaya <bagasdotme@gmail.com> writes:
Show 36 quoted lines
> On Mon, Sep 04, 2023 at 02:56:37PM +0200, Radovan Haluška wrote:
>> What did you do before the bug happened? (Steps to reproduce your issue)
>> 
>> ```
>> git clone --quiet --branch master --depth 1 --no-checkout --filter blob:none \
>>     git@github.com:acatai/Strategy-Card-Game-AI-Competition.git locm-agents
>> cd locm-agents
>> git sparse-checkout set --no-cone
>> git sparse-checkout add 'contest-2022-08-COG/ByteRL'
>> git checkout --quiet
>> ```
>> 
>> What did you expect to happen? (Expected behavior)
>> 
>> I expected to receive no output from any of the commands above.
>> 
>> What happened instead? (Actual behavior)
>> 
>> I received an output from the last command even though the `--quiet` switch was specified
>> 
>> What's different between what you expected and what actually happened?
>> 
>> This shouldn't have been printed on the screen:
>> 
>> '''
>> remote: Enumerating objects: 28, done.
>> remote: Counting objects: 100% (28/28), done.
>> remote: Compressing objects: 100% (27/27), done.
>> remote: Total 28 (delta 0), reused 25 (delta 0), pack-reused 0
>> Receiving objects: 100% (28/28), 31.40 MiB | 4.94 MiB/s, done.
>> '''
>> 
>
> I can reproduce this bug on v2.40.0 using your reproducer above. Yet,
> `git checkout --quiet` on normal repos (not partial ones) works as
> expected. Cc'ing people working on sparse-checkout recently.

I am not much involved in the lazy clone's on-demand downloading, but I am torn between calling this a bug and a feature.

Just like the original reporter "expected to receive no output", for a pure Git person like me, I expect to see *no* network activity while performing a local operation like "checkout". And from that point of view, "checkout --quiet" telling me that something unexpected and unusual (i.e. the operation "checkout" that is supposed to be local is lazily downloading blobs and trees from the outside world) is happening with the extra output is something I may even appreciate.

Having said that, I would not fundamentally oppose if those who want to improve the lazy clone feature wants to squelch messages from the transport layer while the top-level front end ("checkout" in this case) wants to operate quietly.

Thanks for a report.

← back to recent threads