ls-files -i directories

2013-05-31 Thread Roland Schulz
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
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ls-files -i directories

2013-05-31 Thread John Keeping
On Fri, May 31, 2013 at 04:22:37PM -0400, Roland Schulz wrote:
 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.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html