trace2: fixup access problem on /etc/gitconfig in read_very_early_config
Teach do_git_config_sequence() to optionally gently check for access to the system config. Use this option in read_very_early_config() when initializing trace2. In [1] SZEDER Gábor reported that my changes in [2] introduced a regression when the user does not have permission to read the system config. This commit addresses that problem by optionally ignoring that error. [1] https://public-inbox.org/git/285beb2b2d740ce20fdd8af1becf371ab39703db.1554995916.git.gitgitgadget@gmail.com/T/#m342e839289aec515523a98b5e34d7f42d3f1fd79 [2] https://public-inbox.org/git/285beb2b2d740ce20fdd8af1becf371ab39703db.1554995916.git.gitgitgadget@gmail.com/T/#m11b59c9228c698442f750ee8f9b10c629399ae48 Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									81567caf87
								
							
						
					
					
						commit
						f672deec2d
					
				
							
								
								
									
										5
									
								
								config.c
								
								
								
								
							
							
						
						
									
										5
									
								
								config.c
								
								
								
								
							|  | @ -1676,7 +1676,9 @@ static int do_git_config_sequence(const struct config_options *opts, | ||||||
| 		repo_config = NULL; | 		repo_config = NULL; | ||||||
|  |  | ||||||
| 	current_parsing_scope = CONFIG_SCOPE_SYSTEM; | 	current_parsing_scope = CONFIG_SCOPE_SYSTEM; | ||||||
| 	if (git_config_system() && !access_or_die(git_etc_gitconfig(), R_OK, 0)) | 	if (git_config_system() && !access_or_die(git_etc_gitconfig(), R_OK, | ||||||
|  | 						  opts->system_gently ? | ||||||
|  | 						  ACCESS_EACCES_OK : 0)) | ||||||
| 		ret += git_config_from_file(fn, git_etc_gitconfig(), | 		ret += git_config_from_file(fn, git_etc_gitconfig(), | ||||||
| 					    data); | 					    data); | ||||||
|  |  | ||||||
|  | @ -1807,6 +1809,7 @@ void read_very_early_config(config_fn_t cb, void *data) | ||||||
| 	opts.ignore_repo = 1; | 	opts.ignore_repo = 1; | ||||||
| 	opts.ignore_worktree = 1; | 	opts.ignore_worktree = 1; | ||||||
| 	opts.ignore_cmdline = 1; | 	opts.ignore_cmdline = 1; | ||||||
|  | 	opts.system_gently = 1; | ||||||
|  |  | ||||||
| 	config_with_options(cb, data, NULL, &opts); | 	config_with_options(cb, data, NULL, &opts); | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								config.h
								
								
								
								
							
							
						
						
									
										1
									
								
								config.h
								
								
								
								
							|  | @ -58,6 +58,7 @@ struct config_options { | ||||||
| 	unsigned int ignore_repo : 1; | 	unsigned int ignore_repo : 1; | ||||||
| 	unsigned int ignore_worktree : 1; | 	unsigned int ignore_worktree : 1; | ||||||
| 	unsigned int ignore_cmdline : 1; | 	unsigned int ignore_cmdline : 1; | ||||||
|  | 	unsigned int system_gently : 1; | ||||||
| 	const char *commondir; | 	const char *commondir; | ||||||
| 	const char *git_dir; | 	const char *git_dir; | ||||||
| 	config_parser_event_fn_t event_fn; | 	config_parser_event_fn_t event_fn; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Jeff Hostetler
						Jeff Hostetler