git-diff A...B to (usually) mean "git-diff `git-merge-base A B` B"
This tweaks the argument parser of "git diff" to allow "git-diff A...B" to show diffs leading to B since their merge-base, when there is only one sensible merge base between A and B. Currently nonsense cases are thrown at combined-diff to produce nonsense results, which would eventually need to be fixed. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									b9718d41c7
								
							
						
					
					
						commit
						9919f41c91
					
				|  | @ -346,7 +346,15 @@ int cmd_diff(int argc, const char **argv, char **envp) | |||
| 		return builtin_diff_index(&rev, argc, argv); | ||||
| 	else if (ents == 2) | ||||
| 		return builtin_diff_tree(&rev, argc, argv, ent); | ||||
| 	else if ((ents == 3) && (ent[0].item->flags & UNINTERESTING)) { | ||||
| 		/* diff A...B where there is one sane merge base between | ||||
| 		 * A and B.  We have ent[0] == merge-base, ent[1] == A, | ||||
| 		 * and ent[2] == B.  Show diff between the base and B. | ||||
| 		 */ | ||||
| 		return builtin_diff_tree(&rev, argc, argv, ent); | ||||
| 	} | ||||
| 	else | ||||
| 		return builtin_diff_combined(&rev, argc, argv, ent, ents); | ||||
| 		return builtin_diff_combined(&rev, argc, argv, | ||||
| 					     ent, ents); | ||||
| 	usage(builtin_diff_usage); | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano