git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
CBCarmen Bianca Bakker <carmenbianca@fsfe.org>
Date
Apr 18, 2019, 06:49 UTC
Message-ID
<f5a8939f2efddb194dadb59c946522a75c5bda53.camel@fsfe.org>
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>
Message 1 of 1 in “Bug report: `git-ls-files --exclude-standard --ignored --others --directory` gives incomplete output”
  1. Carmen Bianca BakkerApr 18, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.