 4bd5b7dacc
			
		
	
	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;
 | |
| }
 |