threads / bug / 50950

Bug report: `git-ls-files --exclude-standard --ignored --others --directory` gives incomplete output

Subject: Bug report: `git-ls-files --exclude-standard --ignored --others --directory` gives incomplete output

## tl;dr

One message between Apr 18, 2019 and Apr 18, 2019.

replies: 0people: 1as markdown or json

Carmen Bianca Bakker· Apr 18, 2019, 06:49 UTC · lore
Hi git developers,

Apologies in advance if my mailing list etiquette isn't 100% perfect. I don't use mailing lists all that often. Please CC me in replies, because I am not subscribed.

I use `git-ls-files` in a project[1] to get a list of ignored files/directories, and to ignore them in my project. I found that using `--directory` speeds things up by a lot, so I can ignore entire directories.

However, I get inconsistent results between using the --directory flag and not. To demonstrate this, I created a super tiny repository[2]. The repository ignores all `*.mo` files.

I then do:

$ mkdir po/subdir $ touch eo.mo po/eo.mo po/subdir/eo.mo

When I run `git ls-files --exclude-standard --ignored --others`, my output is:

eo.mo po/eo.mo po/subdir/eo.mo

But when I run `git ls-files --exclude-standard --ignored --others --directory`, my output is:

eo.mo po/eo.mo

Rather strangely, when I alter the command to `git ls-files --exclude- standard --ignored --others --directory --no-empty-directory`, I get:

eo.mo po/eo.mo po/subdir/

This seems very counter-intuitive to me, because po/subdir/ is an empty directory in the sense that it contains no files tracked by git.

Is this a bug, or is this a miscomprehension on my part about how `git- ls-files` is supposed to function?

With kindness, Carmen

[1]: < https://github.com/fsfe/reuse-tool/blob/75c8c1ba0b7fcefc3ab4e132b539f506e18f721c/src/reuse/_util.py#L115

>
[2]: <https://github.com/carmenbianca/git-ls-files>

← back to recent threads