Michael Brown <michael.brown@xxxxxxxxxxxxx> writes: > What did you do before the bug happened? (Steps to reproduce your issue) > > 1. Be in any existing repository in a clean state (I tested with 2 existing > repositories and 1 completely fresh) > 1. run `git diff-files`, see no output > 1. touch an existing file: `touch a` > 1. run `git diff-files` This is totally expected behaviour. In general when you are working with plumbing commands like diff-files and diff-index, you are expected to do "update-index --refresh" upfront. A plumbing command "git diff" has an equivalent of "update-index --refresh" built into it, but the plumbing commands are designed to be used in scripts, and in order to allow scripting programmers to avoid making unnecessary "update-index --refresh", e.g. git update-index --refresh git diff-files | use diff-files output git diff-index | use diff-index output they leave it the responsibility of the calling script (or the end user who directly use them from the command line) to refresh the cached stat information as necessary.