mirror of
https://github.com/git/git.git
synced 2024-12-18 22:33:34 +08:00
4bd5b7dacc
ce_match_stat() can be told: (1) to ignore CE_VALID bit (used under "assume unchanged" mode) and perform the stat comparison anyway; (2) not to perform the contents comparison for racily clean entries and report mismatch of cached stat information; using its "option" parameter. Give them symbolic constants. Similarly, run_diff_files() can be told not to report anything on removed paths. Also give it a symbolic constant for that. Signed-off-by: Junio C Hamano <gitster@pobox.com>
29 lines
538 B
C
29 lines
538 B
C
#include "cache.h"
|
|
|
|
int main(int ac, char **av)
|
|
{
|
|
int i;
|
|
int dirty, clean, racy;
|
|
|
|
dirty = clean = racy = 0;
|
|
read_cache();
|
|
for (i = 0; i < active_nr; i++) {
|
|
struct cache_entry *ce = active_cache[i];
|
|
struct stat st;
|
|
|
|
if (lstat(ce->name, &st)) {
|
|
error("lstat(%s): %s", ce->name, strerror(errno));
|
|
continue;
|
|
}
|
|
|
|
if (ce_match_stat(ce, &st, 0))
|
|
dirty++;
|
|
else if (ce_match_stat(ce, &st, CE_MATCH_RACY_IS_DIRTY))
|
|
racy++;
|
|
else
|
|
clean++;
|
|
}
|
|
printf("dirty %d, clean %d, racy %d\n", dirty, clean, racy);
|
|
return 0;
|
|
}
|