diff --git a/add-patch.c b/add-patch.c index 2fcab983a64882b2bccadeac8fce52566f8a9bb5..cd5cfc93fad5a04643718edd56b65326b51ff7ee 100644 --- a/add-patch.c +++ b/add-patch.c @@ -1655,7 +1655,7 @@ static int patch_update_file(struct add_p_state *s, NULL, 0, NULL, 0)) error(_("'git apply' failed")); } - if (!repo_read_index(s->s.r)) + if (repo_read_index(s->s.r) >= 0) repo_refresh_and_write_index(s->s.r, REFRESH_QUIET, 0, 1, NULL, NULL, NULL); } diff --git a/git-add--interactive.perl b/git-add--interactive.perl index f36c0078ac9a71758a7e1cab701d3a633b66c0d3..b6cdcfef6195140d9cd4d279fd0043248324bb09 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -714,7 +714,7 @@ sub parse_diff { if (defined $patch_mode_revision) { push @diff_cmd, get_diff_reference($patch_mode_revision); } - my @diff = run_cmd_pipe("git", @diff_cmd, "--", $path); + my @diff = run_cmd_pipe("git", @diff_cmd, qw(--no-color --), $path); my @colored = (); if ($diff_use_color) { my @display_cmd = ("git", @diff_cmd, qw(--color --), $path); diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index fb73a847cb9dba41081a2e8d9d34cd4ea1950268..1590cf6b98fbe2a19379feee5e39336b45536939 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -569,12 +569,20 @@ test_expect_success 'patch mode ignores unmerged entries' ' diff_cmp expected diff ' +test_expect_success 'index is refreshed after applying patch' ' + git reset --hard && + echo content >test && + printf y | git add -p && + git diff-files --exit-code +' + test_expect_success 'diffs can be colorized' ' git reset --hard && echo content >test && printf y >y && force_color git add -p >output 2>&1