summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2007-07-07 17:50:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-07-07 18:54:51 (GMT)
commit5fda48d67c82e07950e0b0c21cd8c97daefd7be0 (patch)
tree6e00623936013d4aaea619c55cd0d7c45fa96257
parented5f07a6fdc5653e24a5bd6c216d12bc878496bd (diff)
downloadgit-5fda48d67c82e07950e0b0c21cd8c97daefd7be0.zip
git-5fda48d67c82e07950e0b0c21cd8c97daefd7be0.tar.gz
git-5fda48d67c82e07950e0b0c21cd8c97daefd7be0.tar.bz2
Fix "apply --reverse" with regard to whitespace
"git apply" used to take check the whitespace in the wrong direction. Noticed by Daniel Barkalow. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-apply.c6
-rwxr-xr-xt/t4116-apply-reverse.sh6
2 files changed, 11 insertions, 1 deletions
diff --git a/builtin-apply.c b/builtin-apply.c
index 0399743..490e23e 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1003,12 +1003,16 @@ static int parse_fragment(char *line, unsigned long size, struct patch *patch, s
trailing++;
break;
case '-':
+ if (apply_in_reverse &&
+ new_whitespace != nowarn_whitespace)
+ check_whitespace(line, len);
deleted++;
oldlines--;
trailing = 0;
break;
case '+':
- if (new_whitespace != nowarn_whitespace)
+ if (!apply_in_reverse &&
+ new_whitespace != nowarn_whitespace)
check_whitespace(line, len);
added++;
newlines--;
diff --git a/t/t4116-apply-reverse.sh b/t/t4116-apply-reverse.sh
index 2685b22..11e0280 100755
--- a/t/t4116-apply-reverse.sh
+++ b/t/t4116-apply-reverse.sh
@@ -82,4 +82,10 @@ test_expect_success 'apply in reverse without postimage' '
)
'
+test_expect_success 'reversing a whitespace introduction' '
+ sed "s/a/a /" < file1 > file1.new &&
+ mv file1.new file1 &&
+ git diff | git apply --reverse --whitespace=error
+'
+
test_done