Allow the default low-level merge driver to be configured.
When no 'merge' attribute is given to a path, merge-recursive uses the built-in xdl-merge as the low-level merge driver. A new configuration item 'merge.default' can name a low-level merge driver of user's choice to be used instead. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									f3ef6b6bbe
								
							
						
					
					
						commit
						be89cb239e
					
				|  | @ -839,12 +839,18 @@ static struct user_merge_fn { | ||||||
| 	char *cmdline; | 	char *cmdline; | ||||||
| 	char b_[1]; | 	char b_[1]; | ||||||
| } *ll_user_merge_fns, **ll_user_merge_fns_tail; | } *ll_user_merge_fns, **ll_user_merge_fns_tail; | ||||||
|  | static const char *default_ll_merge; | ||||||
|  |  | ||||||
| static int read_merge_config(const char *var, const char *value) | static int read_merge_config(const char *var, const char *value) | ||||||
| { | { | ||||||
| 	struct user_merge_fn *fn; | 	struct user_merge_fn *fn; | ||||||
| 	int blen, nlen; | 	int blen, nlen; | ||||||
|  |  | ||||||
|  | 	if (!strcmp(var, "merge.default")) { | ||||||
|  | 		default_ll_merge = strdup(value); | ||||||
|  | 		return 0; | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if (strcmp(var, "merge.driver")) | 	if (strcmp(var, "merge.driver")) | ||||||
| 		return 0; | 		return 0; | ||||||
| 	if (!value) | 	if (!value) | ||||||
|  | @ -900,8 +906,12 @@ static ll_merge_fn find_ll_merge_fn(void *merge_attr, const char **cmdline) | ||||||
| 		return ll_xdl_merge; | 		return ll_xdl_merge; | ||||||
| 	else if (ATTR_FALSE(merge_attr)) | 	else if (ATTR_FALSE(merge_attr)) | ||||||
| 		return ll_binary_merge; | 		return ll_binary_merge; | ||||||
| 	else if (ATTR_UNSET(merge_attr)) | 	else if (ATTR_UNSET(merge_attr)) { | ||||||
|  | 		if (!default_ll_merge) | ||||||
| 			return ll_xdl_merge; | 			return ll_xdl_merge; | ||||||
|  | 		else | ||||||
|  | 			name = default_ll_merge; | ||||||
|  | 	} | ||||||
| 	else | 	else | ||||||
| 		name = merge_attr; | 		name = merge_attr; | ||||||
|  |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano