Re: touching a file causes it to be listed using git diff-files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 13, 2010 at 06:57:28PM -0500, Stephen Bannasch wrote:

> If I touch a file in the working directory (only changing it's last-modified) attribute it shows up when running git diff-files.
> 
> If I then run git status followed by git diff-files again it doesn't show up either time.
> 
> Is this an error?

No. For performance reasons[1], plumbing commands like diff-files do not
update the index. You must run "git update-index --refresh" manually.

User-facing porcelain commands like "git diff" and "git status" will
refresh the index automatically. So "git status" will, as a side effect,
refresh the index and impact further calls to diff-files.

-Peff

[1] Refreshing the index needs to stat all of the files. If you are
writing a script using plumbing commands, you probably want to do the
possibly-expensive refresh once at the start of your script, and then
issue many diff commands. This makes a lot of sense for "diff-index",
which otherwise does not need to touch the working tree at all. I'm not
sure how much it helps with diff-files, though, which clearly ends up
stat'ing the working tree file anyway.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]