ls-files: excludes should not impact tracked files

In all parts of git, .gitignore and other exclude files
impact only how we treat untracked files; they should have
no effect on files listed in the index.

This behavior was originally implemented very early on in
9ff768e, but only for --exclude-from. Later, commit 63d285c
accidentally caused us to trigger the behavior for
--exclude-per-directory.

This patch totally ignores excludes for files found in the
index. This means we are reversing the original intent of
9ff768e, while at the same time fixing the accidental
behavior of 63d285c. This is a good thing, though, as the
way that 9ff768e behaved does not really make sense with the
way exclusions are used in modern git.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 files changed
tree: 4e48d89e4bdcceeb9f5ae61e82b08df234519455
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. git-gui/
  6. gitk-git/
  7. gitweb/
  8. mozilla-sha1/
  9. perl/
  10. ppc/
  11. t/
  12. templates/
  13. xdiff/
  14. .gitattributes
  15. .gitignore
  16. .mailmap
  17. abspath.c
  18. alias.c
  19. alloc.c
  20. archive-tar.c
  21. archive-zip.c
  22. archive.c
  23. archive.h
  24. attr.c
  25. attr.h
  26. base85.c
  27. bisect.c
  28. bisect.h
  29. blob.c
  30. blob.h
  31. branch.c
  32. branch.h
  33. builtin-add.c
  34. builtin-annotate.c
  35. builtin-apply.c
  36. builtin-archive.c
  37. builtin-bisect--helper.c
  38. builtin-blame.c
  39. builtin-branch.c
  40. builtin-bundle.c
  41. builtin-cat-file.c
  42. builtin-check-attr.c
  43. builtin-check-ref-format.c
  44. builtin-checkout-index.c
  45. builtin-checkout.c
  46. builtin-clean.c
  47. builtin-clone.c
  48. builtin-commit-tree.c
  49. builtin-commit.c
  50. builtin-config.c
  51. builtin-count-objects.c
  52. builtin-describe.c
  53. builtin-diff-files.c
  54. builtin-diff-index.c
  55. builtin-diff-tree.c
  56. builtin-diff.c
  57. builtin-fast-export.c
  58. builtin-fetch--tool.c
  59. builtin-fetch-pack.c
  60. builtin-fetch.c
  61. builtin-fmt-merge-msg.c
  62. builtin-for-each-ref.c
  63. builtin-fsck.c
  64. builtin-gc.c
  65. builtin-grep.c
  66. builtin-help.c
  67. builtin-http-fetch.c
  68. builtin-init-db.c
  69. builtin-log.c
  70. builtin-ls-files.c
  71. builtin-ls-remote.c
  72. builtin-ls-tree.c
  73. builtin-mailinfo.c
  74. builtin-mailsplit.c
  75. builtin-merge-base.c
  76. builtin-merge-file.c
  77. builtin-merge-ours.c
  78. builtin-merge-recursive.c
  79. builtin-merge.c
  80. builtin-mv.c
  81. builtin-name-rev.c
  82. builtin-pack-objects.c
  83. builtin-pack-refs.c
  84. builtin-prune-packed.c
  85. builtin-prune.c
  86. builtin-push.c
  87. builtin-read-tree.c
  88. builtin-receive-pack.c
  89. builtin-reflog.c
  90. builtin-remote.c
  91. builtin-rerere.c
  92. builtin-reset.c
  93. builtin-rev-list.c
  94. builtin-rev-parse.c
  95. builtin-revert.c
  96. builtin-rm.c
  97. builtin-send-pack.c
  98. builtin-shortlog.c
  99. builtin-show-branch.c
  100. builtin-show-ref.c
  101. builtin-stripspace.c
  102. builtin-symbolic-ref.c
  103. builtin-tag.c
  104. builtin-tar-tree.c
  105. builtin-unpack-objects.c
  106. builtin-update-index.c
  107. builtin-update-ref.c
  108. builtin-upload-archive.c
  109. builtin-verify-pack.c
  110. builtin-verify-tag.c
  111. builtin-write-tree.c
  112. builtin.h
  113. bundle.c
  114. bundle.h
  115. cache-tree.c
  116. cache-tree.h
  117. cache.h
  118. check-builtins.sh
  119. check-racy.c
  120. check_bindir
  121. color.c
  122. color.h
  123. combine-diff.c
  124. command-list.txt
  125. commit.c
  126. commit.h
  127. config.c
  128. config.mak.in
  129. configure.ac
  130. connect.c
  131. convert.c
  132. copy.c
  133. COPYING
  134. csum-file.c
  135. csum-file.h
  136. ctype.c
  137. daemon.c
  138. date.c
  139. decorate.c
  140. decorate.h
  141. delta.h
  142. diff-delta.c
  143. diff-lib.c
  144. diff-no-index.c
  145. diff.c
  146. diff.h
  147. diffcore-break.c
  148. diffcore-delta.c
  149. diffcore-order.c
  150. diffcore-pickaxe.c
  151. diffcore-rename.c
  152. diffcore.h
  153. dir.c
  154. dir.h
  155. editor.c
  156. entry.c
  157. environment.c
  158. exec_cmd.c
  159. exec_cmd.h
  160. fast-import.c
  161. fetch-pack.h
  162. fixup-builtins
  163. fsck.c
  164. fsck.h
  165. generate-cmdlist.sh
  166. git-add--interactive.perl
  167. git-am.sh
  168. git-archimport.perl
  169. git-bisect.sh
  170. git-compat-util.h
  171. git-cvsexportcommit.perl
  172. git-cvsimport.perl
  173. git-cvsserver.perl
  174. git-difftool--helper.sh
  175. git-difftool.perl
  176. git-filter-branch.sh
  177. git-instaweb.sh
  178. git-lost-found.sh
  179. git-merge-octopus.sh
  180. git-merge-one-file.sh
  181. git-merge-resolve.sh
  182. git-mergetool--lib.sh
  183. git-mergetool.sh
  184. git-parse-remote.sh
  185. git-pull.sh
  186. git-quiltimport.sh
  187. git-rebase--interactive.sh
  188. git-rebase.sh
  189. git-relink.perl
  190. git-repack.sh
  191. git-request-pull.sh
  192. git-send-email.perl
  193. git-sh-setup.sh
  194. git-stash.sh
  195. git-submodule.sh
  196. git-svn.perl
  197. GIT-VERSION-GEN
  198. git-web--browse.sh
  199. git.c
  200. git.spec.in
  201. graph.c
  202. graph.h
  203. grep.c
  204. grep.h
  205. hash-object.c
  206. hash.c
  207. hash.h
  208. help.c
  209. help.h
  210. http-push.c
  211. http-walker.c
  212. http.c
  213. http.h
  214. ident.c
  215. imap-send.c
  216. index-pack.c
  217. INSTALL
  218. levenshtein.c
  219. levenshtein.h
  220. list-objects.c
  221. list-objects.h
  222. ll-merge.c
  223. ll-merge.h
  224. lockfile.c
  225. log-tree.c
  226. log-tree.h
  227. mailmap.c
  228. mailmap.h
  229. Makefile
  230. match-trees.c
  231. merge-file.c
  232. merge-index.c
  233. merge-recursive.c
  234. merge-recursive.h
  235. merge-tree.c
  236. mktag.c
  237. mktree.c
  238. name-hash.c
  239. object.c
  240. object.h
  241. pack-check.c
  242. pack-redundant.c
  243. pack-refs.c
  244. pack-refs.h
  245. pack-revindex.c
  246. pack-revindex.h
  247. pack-write.c
  248. pack.h
  249. pager.c
  250. parse-options.c
  251. parse-options.h
  252. patch-delta.c
  253. patch-id.c
  254. patch-ids.c
  255. patch-ids.h
  256. path.c
  257. pkt-line.c
  258. pkt-line.h
  259. preload-index.c
  260. pretty.c
  261. progress.c
  262. progress.h
  263. quote.c
  264. quote.h
  265. reachable.c
  266. reachable.h
  267. read-cache.c
  268. README
  269. reflog-walk.c
  270. reflog-walk.h
  271. refs.c
  272. refs.h
  273. remote.c
  274. remote.h
  275. rerere.c
  276. rerere.h
  277. revision.c
  278. revision.h
  279. run-command.c
  280. run-command.h
  281. send-pack.h
  282. server-info.c
  283. setup.c
  284. sha1-lookup.c
  285. sha1-lookup.h
  286. sha1_file.c
  287. sha1_name.c
  288. shallow.c
  289. shell.c
  290. shortlog.h
  291. show-index.c
  292. sideband.c
  293. sideband.h
  294. sigchain.c
  295. sigchain.h
  296. strbuf.c
  297. strbuf.h
  298. string-list.c
  299. string-list.h
  300. symlinks.c
  301. tag.c
  302. tag.h
  303. tar.h
  304. test-chmtime.c
  305. test-ctype.c
  306. test-date.c
  307. test-delta.c
  308. test-dump-cache-tree.c
  309. test-genrandom.c
  310. test-match-trees.c
  311. test-parse-options.c
  312. test-path-utils.c
  313. test-sha1.c
  314. test-sha1.sh
  315. test-sigchain.c
  316. thread-utils.c
  317. thread-utils.h
  318. trace.c
  319. transport.c
  320. transport.h
  321. tree-diff.c
  322. tree-walk.c
  323. tree-walk.h
  324. tree.c
  325. tree.h
  326. unimplemented.sh
  327. unpack-file.c
  328. unpack-trees.c
  329. unpack-trees.h
  330. update-server-info.c
  331. upload-pack.c
  332. usage.c
  333. userdiff.c
  334. userdiff.h
  335. utf8.c
  336. utf8.h
  337. var.c
  338. walker.c
  339. walker.h
  340. wrapper.c
  341. write_or_die.c
  342. ws.c
  343. wt-status.c
  344. wt-status.h
  345. xdiff-interface.c
  346. xdiff-interface.h