mirror of
https://github.com/git/git.git
synced 2024-05-29 21:26:09 +02:00
Merge branch 'pw/add-p-recount'
When user edits the patch in "git add -p" and the user's editor is set to strip trailing whitespaces indiscriminately, an empty line that is unchanged in the patch would become completely empty (instead of a line with a sole SP on it). The code introduced in Git 2.17 timeframe failed to parse such a patch, but now it learned to notice the situation and cope with it. * pw/add-p-recount: add -p: fix counting empty context lines in edited patches
This commit is contained in:
commit
5eb8da8508
|
@ -1062,7 +1062,7 @@ sub recount_edited_hunk {
|
||||||
$o_cnt++;
|
$o_cnt++;
|
||||||
} elsif ($mode eq '+') {
|
} elsif ($mode eq '+') {
|
||||||
$n_cnt++;
|
$n_cnt++;
|
||||||
} elsif ($mode eq ' ') {
|
} elsif ($mode eq ' ' or $mode eq "\n") {
|
||||||
$o_cnt++;
|
$o_cnt++;
|
||||||
$n_cnt++;
|
$n_cnt++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,6 +175,49 @@ test_expect_success 'real edit works' '
|
||||||
diff_cmp expected output
|
diff_cmp expected output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'setup file' '
|
||||||
|
test_write_lines a "" b "" c >file &&
|
||||||
|
git add file &&
|
||||||
|
test_write_lines a "" d "" c >file
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'setup patch' '
|
||||||
|
SP=" " &&
|
||||||
|
NULL="" &&
|
||||||
|
cat >patch <<-EOF
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
a
|
||||||
|
$NULL
|
||||||
|
-b
|
||||||
|
+f
|
||||||
|
$SP
|
||||||
|
c
|
||||||
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'setup expected' '
|
||||||
|
cat >expected <<-EOF
|
||||||
|
diff --git a/file b/file
|
||||||
|
index b5dd6c9..f910ae9 100644
|
||||||
|
--- a/file
|
||||||
|
+++ b/file
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
a
|
||||||
|
$SP
|
||||||
|
-f
|
||||||
|
+d
|
||||||
|
$SP
|
||||||
|
c
|
||||||
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'edit can strip spaces from empty context lines' '
|
||||||
|
test_write_lines e n q | git add -p 2>error &&
|
||||||
|
test_must_be_empty error &&
|
||||||
|
git diff >output &&
|
||||||
|
diff_cmp expected output
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'skip files similarly as commit -a' '
|
test_expect_success 'skip files similarly as commit -a' '
|
||||||
git reset &&
|
git reset &&
|
||||||
echo file >.gitignore &&
|
echo file >.gitignore &&
|
||||||
|
|
Loading…
Reference in New Issue