Teach ls-files --with-tree=<tree> to work with options other than -c
authorJunio C Hamano <gitster@pobox.com>
Sun, 16 Nov 2008 08:10:25 +0000 (00:10 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Nov 2008 08:15:50 +0000 (00:15 -0800)
Originally --with-tree=<tree> was designed for the sole purpose of
checking if a given pathspec makes sense as a parameter to git-commit
using it in conjunction with --error-unmatch.  It had logic to avoid
showing the same entry (one came from the original index, another from the
overlayed tree) twice so that it works with -c (i.e. "show-cached"), but
otherwise it was not designed to work with the flags such as -m, -d, etc.

This teaches the same logic to cover the codepath for -m and -d.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-ls-files.c

index 21b0bf75f764f6fd1fe7d195ae543baffa5f4b48..f72eb854756f602e4d114964f4585bc5a8c55e20 100644 (file)
@@ -227,6 +227,8 @@ static void show_files(struct dir_struct *dir, const char *prefix)
                        int dtype = ce_to_dtype(ce);
                        if (excluded(dir, ce->name, &dtype) != dir->show_ignored)
                                continue;
+                       if (ce->ce_flags & CE_UPDATE)
+                               continue;
                        err = lstat(ce->name, &st);
                        if (show_deleted && err)
                                show_ce_entry(tag_removed, ce);