summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-09-19 00:58:04 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-09-19 00:58:04 (GMT)
commit694e517778243256b748819cc60eff6011238a0a (patch)
tree4692698c62330278df6d55a94fa1bc33044eb667
parent3ad8d3e4f9855de6444b081e59328a55de1def80 (diff)
parent1c6ffb546bf5d31c2cef2fefc86317658fda59e0 (diff)
downloadgit-694e517778243256b748819cc60eff6011238a0a.zip
git-694e517778243256b748819cc60eff6011238a0a.tar.gz
git-694e517778243256b748819cc60eff6011238a0a.tar.bz2
Merge branch 'jk/add-i-fixes'
"add -i/-p" fixes. * jk/add-i-fixes: add--interactive.perl: specify --no-color explicitly add-patch: fix inverted return code of repo_read_index()
-rw-r--r--add-patch.c2
-rwxr-xr-xgit-add--interactive.perl2
-rwxr-xr-xt/t3701-add-interactive.sh8
3 files changed, 10 insertions, 2 deletions
diff --git a/add-patch.c b/add-patch.c
index 2fcab98..cd5cfc9 100644
--- a/add-patch.c
+++ b/add-patch.c
@@ -1655,7 +1655,7 @@ soft_increment:
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 f36c007..b6cdcfe 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 fb73a84..1590cf6 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 <y &&
+ git diff-files --exit-code &&
# We do not want to depend on the exact coloring scheme
# git uses for diffs, so just check that we saw some kind of color.