Merge branch 'tr/maint-1.6.3-add-p-modeonly-fix' into maint-1.6.3
* tr/maint-1.6.3-add-p-modeonly-fix: add -p: do not attempt to coalesce mode changes git add -p: demonstrate failure when staging both mode and hunkmaint
						commit
						9e4a90ba19
					
				|  | @ -841,6 +841,10 @@ sub coalesce_overlapping_hunks { | ||||||
| 	my ($last_o_ctx, $last_was_dirty); | 	my ($last_o_ctx, $last_was_dirty); | ||||||
|  |  | ||||||
| 	for (grep { $_->{USE} } @in) { | 	for (grep { $_->{USE} } @in) { | ||||||
|  | 		if ($_->{TYPE} ne 'hunk') { | ||||||
|  | 			push @out, $_; | ||||||
|  | 			next; | ||||||
|  | 		} | ||||||
| 		my $text = $_->{TEXT}; | 		my $text = $_->{TEXT}; | ||||||
| 		my ($o_ofs) = parse_hunk_header($text->[0]); | 		my ($o_ofs) = parse_hunk_header($text->[0]); | ||||||
| 		if (defined $last_o_ctx && | 		if (defined $last_o_ctx && | ||||||
|  |  | ||||||
|  | @ -163,6 +163,17 @@ test_expect_success FILEMODE 'stage mode but not hunk' ' | ||||||
| 	git diff          file | grep "+content" | 	git diff          file | grep "+content" | ||||||
| ' | ' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | test_expect_success FILEMODE 'stage mode and hunk' ' | ||||||
|  | 	git reset --hard && | ||||||
|  | 	echo content >>file && | ||||||
|  | 	chmod +x file && | ||||||
|  | 	printf "y\\ny\\n" | git add -p && | ||||||
|  | 	git diff --cached file | grep "new mode" && | ||||||
|  | 	git diff --cached file | grep "+content" && | ||||||
|  | 	test -z "$(git diff file)" | ||||||
|  | ' | ||||||
|  |  | ||||||
| # end of tests disabled when filemode is not usable | # end of tests disabled when filemode is not usable | ||||||
|  |  | ||||||
| test_expect_success 'setup again' ' | test_expect_success 'setup again' ' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano