Add check program "git-check-racy"
This will help counting the racily clean paths, but it should be useless for daily use. Do not even enable it in the makefile. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									520cd3eca5
								
							
						
					
					
						commit
						42f774063d
					
				
							
								
								
									
										6
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										6
									
								
								Makefile
								
								
								
								
							|  | @ -194,7 +194,11 @@ PROGRAMS = \ | |||
| 	git-update-server-info$X \ | ||||
| 	git-upload-pack$X git-verify-pack$X \ | ||||
| 	git-pack-redundant$X git-var$X \ | ||||
| 	git-describe$X git-merge-tree$X git-blame$X git-imap-send$X | ||||
| 	git-describe$X git-merge-tree$X git-blame$X git-imap-send$X \ | ||||
| 	$(EXTRA_PROGRAMS) | ||||
|  | ||||
| # Empty... | ||||
| EXTRA_PROGRAMS = | ||||
|  | ||||
| BUILT_INS = \ | ||||
| 	git-format-patch$X git-show$X git-whatchanged$X \ | ||||
|  |  | |||
|  | @ -0,0 +1,28 @@ | |||
| #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, 2)) | ||||
| 			racy++; | ||||
| 		else | ||||
| 			clean++; | ||||
| 	} | ||||
| 	printf("dirty %d, clean %d, racy %d\n", dirty, clean, racy); | ||||
| 	return 0; | ||||
| } | ||||
							
								
								
									
										10
									
								
								read-cache.c
								
								
								
								
							
							
						
						
									
										10
									
								
								read-cache.c
								
								
								
								
							|  | @ -169,9 +169,11 @@ static int ce_match_stat_basic(struct cache_entry *ce, struct stat *st) | |||
| 	return changed; | ||||
| } | ||||
|  | ||||
| int ce_match_stat(struct cache_entry *ce, struct stat *st, int ignore_valid) | ||||
| int ce_match_stat(struct cache_entry *ce, struct stat *st, int options) | ||||
| { | ||||
| 	unsigned int changed; | ||||
| 	int ignore_valid = options & 01; | ||||
| 	int assume_racy_is_modified = options & 02; | ||||
|  | ||||
| 	/* | ||||
| 	 * If it's marked as always valid in the index, it's | ||||
|  | @ -200,8 +202,12 @@ int ce_match_stat(struct cache_entry *ce, struct stat *st, int ignore_valid) | |||
| 	 */ | ||||
| 	if (!changed && | ||||
| 	    index_file_timestamp && | ||||
| 	    index_file_timestamp <= ntohl(ce->ce_mtime.sec)) | ||||
| 	    index_file_timestamp <= ntohl(ce->ce_mtime.sec)) { | ||||
| 		if (assume_racy_is_modified) | ||||
| 			changed |= DATA_CHANGED; | ||||
| 		else | ||||
| 			changed |= ce_modified_check_fs(ce, st); | ||||
| 	} | ||||
|  | ||||
| 	return changed; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano