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:
Junio C Hamano 2009-08-26 11:22:00 -07:00
commit 9e4a90ba19
2 changed files with 15 additions and 0 deletions

View File

@ -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 &&

View File

@ -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' '