From: Junio C Hamano Date: Wed, 9 Dec 2009 06:37:50 +0000 (-0800) Subject: Merge branch 'jk/maint-add-p-delete-fix' into maint X-Git-Tag: v1.6.5.6~5 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a876433c5fc27cc14860dea3d608ab4e0ff62380?hp=-c Merge branch 'jk/maint-add-p-delete-fix' into maint * jk/maint-add-p-delete-fix: add-interactive: fix deletion of non-empty files --- a876433c5fc27cc14860dea3d608ab4e0ff62380 diff --combined git-add--interactive.perl index 8ce1ec92c2,02e97b90f1..75b71967a7 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@@ -259,7 -259,7 +259,7 @@@ sub list_modified @tracked = map { chomp $_; unquote_path($_); - } run_cmd_pipe(qw(git ls-files --exclude-standard --), @ARGV); + } run_cmd_pipe(qw(git ls-files --), @ARGV); return if (!@tracked); } @@@ -1217,7 -1217,11 +1217,11 @@@ sub patch_update_file if (@{$mode->{TEXT}}) { unshift @hunk, $mode; } - if (@{$deletion->{TEXT}} && !@hunk) { + if (@{$deletion->{TEXT}}) { + foreach my $hunk (@hunk) { + push @{$deletion->{TEXT}}, @{$hunk->{TEXT}}; + push @{$deletion->{DISPLAY}}, @{$hunk->{DISPLAY}}; + } @hunk = ($deletion); } diff --combined t/t3701-add-interactive.sh index d86bc81abf,0926b91d57..b6eba6a839 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@@ -138,20 -138,6 +138,20 @@@ test_expect_success 'real edit works' test_cmp expected output ' +test_expect_success 'skip files similarly as commit -a' ' + git reset && + echo file >.gitignore && + echo changed >file && + echo y | git add -p file && + git diff >output && + git reset && + git commit -am commit && + git diff >expected && + test_cmp expected output && + git reset --hard HEAD^ +' +rm -f .gitignore + if test "$(git config --bool core.filemode)" = false then say 'skipping filemode tests (filesystem does not properly support modes)' @@@ -228,6 -214,26 +228,26 @@@ test_expect_success 'add first line wor test_cmp expected diff ' + cat >expected <non-empty && + git add non-empty && + git commit -m non-empty && + rm non-empty && + echo y | git add -p non-empty && + git diff --cached >diff && + test_cmp expected diff + ' + cat >expected <