Re: [BUG]: Non-matching exclude pathspec causes an error in empty repository when the flag "--update" is present

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Piotr

On 27/05/2025 09:14, Piotr Siupa wrote:
I found a regression in version 2.45.0. (It's still present in the
current next - 2.49.0.1266.g31b7d2e469; earlier versions work fine.)

So it 2.44.0 there is no error message?

When you run "git add --update" with an exclude pathspec on an empty
repository, the command fails, showing an error about not being able
to find the specified files.
This happens only if the repository contains no files. Adding any
files (even with "git add -N") or making a non-empty commit fixes the
issue, regardless of whether the added files match the exclude
pathspec or not.

Way to reproduce:
git init
git add --update -- ':(exclude)foo'

This results in:
error: pathspec ':(exclude)foo' did not match any file(s) known to git
error: pathspec '.' did not match any file(s) known to git

I agree this is inconsistent with what happens if there are tracked files but I wonder if it is actually better to print an error message when an exclude pattern excludes all the files. We do print an error for

git add -u does-not-exist

because it does not match any file but not with

git add -u ':(exclude)*'

or

git add -u builtin ':(exclude)*.[ch]'

which will never add any files (the builtin directory only contains '.c' and '.h' files). So I think maybe the bug is that we don't print an error when there are tracked files and an exclude pattern matches everything

Best Wishes

Phillip




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux