sharkdp/fd

[BUG] Incorrect application of `.gitignore` rules when using `fd` from a nested directory

niba opened this issue · 3 comments

niba commented

Checks

  • I have read the troubleshooting section and still think this is a bug.

Describe the bug you encountered:

When fd is executed from a nested directory it incorrectly ignores files that should be included based on the root .gitignore rules.

In the root directory I have a .gitignore containing this rule
/packages/*/logs

in my project I have the following files

/packages/api_next/src/models/logs/job/jobLogs.service.ts
/packages/api_next/src/models/logs/execution/executionLogs.module.ts
...
etc

When I call fd from my root it returns the files listed above. However, when I go to

/packages/api_next/

and then execute fd I receive no results.

Removing the line /packages/*/logs from gitignore resolves this issue

Describe what you expected to happen:

fd should correctly respect .gitignore and return all files in

/packages/api_next/src/models/logs/...

regardless of the cwd

What version of fd are you using?

9.0.0

Which operating system / distribution are you on?

Darwin 23.3.0 arm64

This is probably a bug in the ignore crate.

I can confirm that the same issue occurs with ripgrep if I use the --files option with it.

Would you mind creating an issue for this on the ripgrep package where the code for the ignore library is?

Actually, I'll just file a bug upstream.