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 hunk
This commit is contained in:
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
Block a user