diff: add synonyms for -M, -C, -B
Add new long-form options --detect-renames[=<n>], --detect-copies[=<n>], and --break-rewrites[=[<n>][/<m>]] as synonyms for the -M, -C, and -B options (respectively). Signed-off-by: Kevin Ballard <kevin@sb.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									10ae7526be
								
							
						
					
					
						commit
						37ab5156ae
					
				|  | @ -207,9 +207,11 @@ endif::git-format-patch[] | ||||||
| 	digits can be specified with `--abbrev=<n>`. | 	digits can be specified with `--abbrev=<n>`. | ||||||
|  |  | ||||||
| -B:: | -B:: | ||||||
|  | --break-rewrites[=[<n>][/<m>]]:: | ||||||
| 	Break complete rewrite changes into pairs of delete and create. | 	Break complete rewrite changes into pairs of delete and create. | ||||||
|  |  | ||||||
| -M:: | -M:: | ||||||
|  | --detect-renames[=<n>]:: | ||||||
| ifndef::git-log[] | ifndef::git-log[] | ||||||
| 	Detect renames. | 	Detect renames. | ||||||
| endif::git-log[] | endif::git-log[] | ||||||
|  | @ -220,6 +222,7 @@ ifdef::git-log[] | ||||||
| endif::git-log[] | endif::git-log[] | ||||||
|  |  | ||||||
| -C:: | -C:: | ||||||
|  | --detect-copies[=<n>]:: | ||||||
| 	Detect copies as well as renames.  See also `--find-copies-harder`. | 	Detect copies as well as renames.  See also `--find-copies-harder`. | ||||||
|  |  | ||||||
| ifndef::git-format-patch[] | ifndef::git-format-patch[] | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								diff.c
								
								
								
								
							
							
						
						
									
										25
									
								
								diff.c
								
								
								
								
							|  | @ -3059,16 +3059,19 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* renames options */ | 	/* renames options */ | ||||||
| 	else if (!prefixcmp(arg, "-B")) { | 	else if (!prefixcmp(arg, "-B") || !prefixcmp(arg, "--break-rewrites=") || | ||||||
|  | 		 !strcmp(arg, "--break-rewrites")) { | ||||||
| 		if ((options->break_opt = diff_scoreopt_parse(arg)) == -1) | 		if ((options->break_opt = diff_scoreopt_parse(arg)) == -1) | ||||||
| 			return -1; | 			return -1; | ||||||
| 	} | 	} | ||||||
| 	else if (!prefixcmp(arg, "-M")) { | 	else if (!prefixcmp(arg, "-M") || !prefixcmp(arg, "--detect-renames=") || | ||||||
|  | 		 !strcmp(arg, "--detect-renames")) { | ||||||
| 		if ((options->rename_score = diff_scoreopt_parse(arg)) == -1) | 		if ((options->rename_score = diff_scoreopt_parse(arg)) == -1) | ||||||
| 			return -1; | 			return -1; | ||||||
| 		options->detect_rename = DIFF_DETECT_RENAME; | 		options->detect_rename = DIFF_DETECT_RENAME; | ||||||
| 	} | 	} | ||||||
| 	else if (!prefixcmp(arg, "-C")) { | 	else if (!prefixcmp(arg, "-C") || !prefixcmp(arg, "--detect-copies=") || | ||||||
|  | 		 !strcmp(arg, "--detect-copies")) { | ||||||
| 		if (options->detect_rename == DIFF_DETECT_COPY) | 		if (options->detect_rename == DIFF_DETECT_COPY) | ||||||
| 			DIFF_OPT_SET(options, FIND_COPIES_HARDER); | 			DIFF_OPT_SET(options, FIND_COPIES_HARDER); | ||||||
| 		if ((options->rename_score = diff_scoreopt_parse(arg)) == -1) | 		if ((options->rename_score = diff_scoreopt_parse(arg)) == -1) | ||||||
|  | @ -3262,6 +3265,22 @@ static int diff_scoreopt_parse(const char *opt) | ||||||
| 	if (*opt++ != '-') | 	if (*opt++ != '-') | ||||||
| 		return -1; | 		return -1; | ||||||
| 	cmd = *opt++; | 	cmd = *opt++; | ||||||
|  | 	if (cmd == '-') { | ||||||
|  | 		/* convert the long-form arguments into short-form versions */ | ||||||
|  | 		if (!prefixcmp(opt, "break-rewrites")) { | ||||||
|  | 			opt += strlen("break-rewrites"); | ||||||
|  | 			if (*opt == 0 || *opt++ == '=') | ||||||
|  | 				cmd = 'B'; | ||||||
|  | 		} else if (!prefixcmp(opt, "detect-copies")) { | ||||||
|  | 			opt += strlen("detect-copies"); | ||||||
|  | 			if (*opt == 0 || *opt++ == '=') | ||||||
|  | 				cmd = 'C'; | ||||||
|  | 		} else if (!prefixcmp(opt, "detect-renames")) { | ||||||
|  | 			opt += strlen("detect-renames"); | ||||||
|  | 			if (*opt == 0 || *opt++ == '=') | ||||||
|  | 				cmd = 'M'; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	if (cmd != 'M' && cmd != 'C' && cmd != 'B') | 	if (cmd != 'M' && cmd != 'C' && cmd != 'B') | ||||||
| 		return -1; /* that is not a -M, -C nor -B option */ | 		return -1; /* that is not a -M, -C nor -B option */ | ||||||
|  |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Kevin Ballard
						Kevin Ballard