threads / discuss / 34004

ls-files -i & directories

Subject: ls-files -i & directories

## tl;dr

2 messages between May 31, 2013 and May 31, 2013.

replies: 1people: 2as markdown or json

Roland Schulz· May 31, 2013, 20:22 UTC · lore
Hi,

the gitignore rules work so that if a directory is ignored, all files in that directory are ignored. While that behavior isn't clearly documented in gitignore, this behavior is consistent across all git tools (status, ls-files, ...).

An exception is that listing the ignored files using "ls-files -i" doesn't behave the same way.

example: $ mkdir d $ touch d/f $ echo /d/ > .gitignore $ git ls-files -o --exclude-standard .gitignore #d/f is correctly not listed $ git ls-files -i --exclude-standard #no output

d/f isn't listed even though it is treated as an ignored file by all other git tools. That seems inconsistent to me. Is that behavior intentionally or is this a bug?

A very similar question was asked before: http://git.661346.n2.nabble.com/git-ls-files-ignored-and-ignored-directory-tt7570641.html but without an answer.

Roland
-- 
ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
865-241-1537, ORNL PO BOX 2008 MS6309
John Keeping· May 31, 2013, 21:20 UTC · re: Roland Schulz · lore

Re: ls-files -i & directories

On Fri, May 31, 2013 at 04:22:37PM -0400, Roland Schulz wrote:
Show 22 quoted lines
> Hi,
> 
> the gitignore rules work so that if a directory is ignored, all files
> in that directory are ignored. While that behavior isn't clearly
> documented in gitignore, this behavior is consistent across all git
> tools (status, ls-files, ...).
> 
> An exception is that listing the ignored files using "ls-files -i"
> doesn't behave the same way.
> 
> example:
> $ mkdir d
> $ touch d/f
> $ echo /d/ > .gitignore
> $ git ls-files -o --exclude-standard
> .gitignore #d/f is correctly not listed
> $ git ls-files -i --exclude-standard
> #no output
> 
> d/f isn't listed even though it is treated as an ignored file by all
> other git tools. That seems inconsistent to me. Is that behavior
> intentionally or is this a bug?

It is listed with "git ls-files -i -o --exclude-standard". The documentation says:

   Show only ignored files in the output. When showing files in the
   index, print only those matched by an exclude pattern.  When showing
   "other" files, show only those matched by an exclude pattern.
If you do this then it is shown:

$ git add -f d/f $ git ls-files -i --exclude-standard d/f

I think this is working as documented.

← back to recent threads