Merge branch 'jk/maint-1.6.3-ls-files-i' into maint

* jk/maint-1.6.3-ls-files-i:
  ls-files: unbreak "ls-files -i"
This commit is contained in:
Junio C Hamano 2009-11-15 23:07:32 -08:00
commit 958742ba43
3 changed files with 20 additions and 2 deletions

View File

@ -48,8 +48,10 @@ OPTIONS
-i:: -i::
--ignored:: --ignored::
Show ignored files in the output. Show only ignored files in the output. When showing files in the
Note that this also reverses any exclude list present. index, print only those matched by an exclude pattern. When
showing "other" files, show only those matched by an exclude
pattern.
-s:: -s::
--stage:: --stage::

View File

@ -170,6 +170,10 @@ static void show_files(struct dir_struct *dir, const char *prefix)
if (show_cached | show_stage) { if (show_cached | show_stage) {
for (i = 0; i < active_nr; i++) { for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i]; struct cache_entry *ce = active_cache[i];
int dtype = ce_to_dtype(ce);
if (dir->flags & DIR_SHOW_IGNORED &&
!excluded(dir, ce->name, &dtype))
continue;
if (show_unmerged && !ce_stage(ce)) if (show_unmerged && !ce_stage(ce))
continue; continue;
if (ce->ce_flags & CE_UPDATE) if (ce->ce_flags & CE_UPDATE)
@ -182,6 +186,10 @@ static void show_files(struct dir_struct *dir, const char *prefix)
struct cache_entry *ce = active_cache[i]; struct cache_entry *ce = active_cache[i];
struct stat st; struct stat st;
int err; int err;
int dtype = ce_to_dtype(ce);
if (dir->flags & DIR_SHOW_IGNORED &&
!excluded(dir, ce->name, &dtype))
continue;
if (ce->ce_flags & CE_UPDATE) if (ce->ce_flags & CE_UPDATE)
continue; continue;
err = lstat(ce->name, &st); err = lstat(ce->name, &st);

View File

@ -29,4 +29,12 @@ test_expect_success 'add file to gitignore' '
' '
check_all_output check_all_output
test_expect_success 'ls-files -i lists only tracked-but-ignored files' '
echo content >other-file &&
git add other-file &&
echo file >expect &&
git ls-files -i --exclude-standard >output &&
test_cmp expect output
'
test_done test_done