From: Junio C Hamano Date: Mon, 19 Oct 2009 06:01:22 +0000 (-0700) Subject: Merge branch 'jk/maint-1.6.3-ls-files-no-ignore-cached' X-Git-Tag: v1.6.6-rc0~115 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e38d1c555e56a9b19f69250f22d2965b621a04af?hp=-c Merge branch 'jk/maint-1.6.3-ls-files-no-ignore-cached' * jk/maint-1.6.3-ls-files-no-ignore-cached: ls-files: excludes should not impact tracked files --- e38d1c555e56a9b19f69250f22d2965b621a04af diff --combined builtin-ls-files.c index 2c95ca6105,16a1370647..c5c0407b0b --- a/builtin-ls-files.c +++ b/builtin-ls-files.c @@@ -161,7 -161,12 +161,7 @@@ static void show_files(struct dir_struc /* For cached/deleted files we don't need to even do the readdir */ if (show_others || show_killed) { - const char *path = ".", *base = ""; - int baselen = prefix_len; - - if (baselen) - path = base = prefix; - read_directory(dir, path, base, baselen, pathspec); + fill_directory(dir, pathspec); if (show_others) show_other_files(dir); if (show_killed) @@@ -170,10 -175,6 +170,6 @@@ if (show_cached | show_stage) { for (i = 0; i < active_nr; i++) { struct cache_entry *ce = active_cache[i]; - int dtype = ce_to_dtype(ce); - if (excluded(dir, ce->name, &dtype) != - !!(dir->flags & DIR_SHOW_IGNORED)) - continue; if (show_unmerged && !ce_stage(ce)) continue; if (ce->ce_flags & CE_UPDATE) @@@ -186,10 -187,6 +182,6 @@@ struct cache_entry *ce = active_cache[i]; struct stat st; int err; - int dtype = ce_to_dtype(ce); - if (excluded(dir, ce->name, &dtype) != - !!(dir->flags & DIR_SHOW_IGNORED)) - continue; if (ce->ce_flags & CE_UPDATE) continue; err = lstat(ce->name, &st); @@@ -449,7 -446,7 +441,7 @@@ int cmd_ls_files(int argc, const char * OPT_BIT(0, "directory", &dir.flags, "show 'other' directories' name only", DIR_SHOW_OTHER_DIRECTORIES), - OPT_BIT(0, "no-empty-directory", &dir.flags, + OPT_NEGBIT(0, "empty-directory", &dir.flags, "don't show empty directories", DIR_HIDE_EMPTY_DIRECTORIES), OPT_BOOLEAN('u', "unmerged", &show_unmerged, @@@ -481,7 -478,7 +473,7 @@@ prefix_offset = strlen(prefix); git_config(git_default_config, NULL); - argc = parse_options(argc, argv, builtin_ls_files_options, + argc = parse_options(argc, argv, prefix, builtin_ls_files_options, ls_files_usage, 0); if (show_tag || show_valid_bit) { tag_cached = "H "; @@@ -524,8 -521,11 +516,8 @@@ ps_matched = xcalloc(1, num); } - if ((dir.flags & DIR_SHOW_IGNORED) && !exc_given) { - fprintf(stderr, "%s: --ignored needs some exclude pattern\n", - argv[0]); - exit(1); - } + if ((dir.flags & DIR_SHOW_IGNORED) && !exc_given) + die("ls-files --ignored needs some exclude pattern"); /* With no flags, we default to showing the cached files */ if (!(show_stage | show_deleted | show_others | show_unmerged |