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

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

 



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>

Attachment: signature.asc
Description: This is a digitally signed message part


[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