diff.c: move read_index() code back to the caller
This code is only needed for diff-tree (since f0c6b2a2fd ([PATCH]
Optimize diff-tree -[CM] --stdin - 2005-05-27)). Let the caller do the
preparation instead and avoid read_index() in diff.c code.
read_index() should be avoided (in addition to the_index) because it
uses get_index_file() underneath to get the path $GIT_DIR/index. This
effectively pulls the_repository in and may become the only reason to
pull a 'struct repository *' in diff.c. Let's keep the dependencies as
few as possible and kick it back to diff-tree.c
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									4dcd706fe4
								
							
						
					
					
						commit
						ff7fe37b05
					
				|  | @ -163,9 +163,11 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix) | ||||||
| 		int saved_nrl = 0; | 		int saved_nrl = 0; | ||||||
| 		int saved_dcctc = 0; | 		int saved_dcctc = 0; | ||||||
|  |  | ||||||
| 		if (opt->diffopt.detect_rename) | 		if (opt->diffopt.detect_rename) { | ||||||
| 			opt->diffopt.setup |= (DIFF_SETUP_USE_SIZE_CACHE | | 			if (!the_index.cache) | ||||||
| 					       DIFF_SETUP_USE_CACHE); | 				read_index(&the_index); | ||||||
|  | 			opt->diffopt.setup |= DIFF_SETUP_USE_SIZE_CACHE; | ||||||
|  | 		} | ||||||
| 		while (fgets(line, sizeof(line), stdin)) { | 		while (fgets(line, sizeof(line), stdin)) { | ||||||
| 			struct object_id oid; | 			struct object_id oid; | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								diff.c
								
								
								
								
							
							
						
						
									
										10
									
								
								diff.c
								
								
								
								
							|  | @ -4414,16 +4414,6 @@ void diff_setup_done(struct diff_options *options) | ||||||
|  |  | ||||||
| 	if (options->detect_rename && options->rename_limit < 0) | 	if (options->detect_rename && options->rename_limit < 0) | ||||||
| 		options->rename_limit = diff_rename_limit_default; | 		options->rename_limit = diff_rename_limit_default; | ||||||
| 	if (options->setup & DIFF_SETUP_USE_CACHE) { |  | ||||||
| 		if (!active_cache) |  | ||||||
| 			/* read-cache does not die even when it fails |  | ||||||
| 			 * so it is safe for us to do this here.  Also |  | ||||||
| 			 * it does not smudge active_cache or active_nr |  | ||||||
| 			 * when it fails, so we do not have to worry about |  | ||||||
| 			 * cleaning it up ourselves either. |  | ||||||
| 			 */ |  | ||||||
| 			read_cache(); |  | ||||||
| 	} |  | ||||||
| 	if (hexsz < options->abbrev) | 	if (hexsz < options->abbrev) | ||||||
| 		options->abbrev = hexsz; /* full */ | 		options->abbrev = hexsz; /* full */ | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								diff.h
								
								
								
								
							
							
						
						
									
										1
									
								
								diff.h
								
								
								
								
							|  | @ -312,7 +312,6 @@ void diff_change(struct diff_options *, | ||||||
| struct diff_filepair *diff_unmerge(struct diff_options *, const char *path); | struct diff_filepair *diff_unmerge(struct diff_options *, const char *path); | ||||||
|  |  | ||||||
| #define DIFF_SETUP_REVERSE      	1 | #define DIFF_SETUP_REVERSE      	1 | ||||||
| #define DIFF_SETUP_USE_CACHE		2 |  | ||||||
| #define DIFF_SETUP_USE_SIZE_CACHE	4 | #define DIFF_SETUP_USE_SIZE_CACHE	4 | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Nguyễn Thái Ngọc Duy
						Nguyễn Thái Ngọc Duy