Update to 2.19.0.rc0

This commit is contained in:
Todd Zullinger 2018-08-20 19:03:47 -04:00
parent 394b8eec1e
commit 218c314f1f
3 changed files with 8 additions and 107 deletions

View File

@ -1,99 +0,0 @@
From 5be233541a4fc2e395087fe51a30a3664165e8bc Mon Sep 17 00:00:00 2001
From: Phillip Wood <phillip.wood@dunelm.org.uk>
Date: Fri, 1 Jun 2018 18:46:44 +0100
Subject: [PATCH] add -p: fix counting empty context lines in edited patches
recount_edited_hunk() introduced in commit 2b8ea7f3c7 ("add -p:
calculate offset delta for edited patches", 2018-03-05) required all
context lines to start with a space, empty lines are not counted. This
was intended to avoid any recounting problems if the user had
introduced empty lines at the end when editing the patch. However this
introduced a regression into 'git add -p' as it seems it is common for
editors to strip the trailing whitespace from empty context lines when
patches are edited thereby introducing empty lines that should be
counted. 'git apply' knows how to deal with such empty lines and POSIX
states that whether or not there is an space on an empty context line
is implementation defined [1].
Fix the regression by counting lines consist solely of a newline as
well as lines starting with a space as context lines and add a test to
prevent future regressions.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html
Reported-by: Mahmoud Al-Qudsi <mqudsi@neosmart.net>
Reported-by: Oliver Joseph Ash <oliverjash@gmail.com>
Reported-by: Jeff Felchner <jfelchner1@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
---
git-add--interactive.perl | 2 +-
t/t3701-add-interactive.sh | 43 ++++++++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index c1f52e457f..befbe8c749 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -1055,7 +1055,7 @@ sub recount_edited_hunk {
$o_cnt++;
} elsif ($mode eq '+') {
$n_cnt++;
- } elsif ($mode eq ' ') {
+ } elsif ($mode eq ' ' or $_ eq "\n") {
$o_cnt++;
$n_cnt++;
}
diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index b170fb02b8..3e9139dca8 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -175,6 +175,49 @@ test_expect_success 'real edit works' '
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' '
git reset &&
echo file >.gitignore &&

View File

@ -79,11 +79,11 @@
%endif
# Define for release candidates
#global rcrev .rc0
%global rcrev .rc0
Name: git
Version: 2.18.0
Release: 2%{?rcrev}%{?dist}.5
Version: 2.19.0
Release: 0.0%{?rcrev}%{?dist}
Summary: Fast Version Control System
License: GPLv2
URL: https://git-scm.com/
@ -115,9 +115,6 @@ Source99: print-failed-test-output
Patch0: git-1.8-gitweb-home-link.patch
# https://bugzilla.redhat.com/490602
Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
# https://github.com/gitster/git/commit/f2cb01d35
# https://public-inbox.org/git/20180601174644.13055-1-phillip.wood@talktalk.net/
Patch2: 0001-add-p-fix-counting-empty-context-lines-in-edited-pat.patch
%if %{with docs}
BuildRequires: asciidoc >= 8.4.1
@ -876,6 +873,9 @@ make -C contrib/credential/netrc/ testverbose
%{?with_docs:%{_pkgdocdir}/git-svn.html}
%changelog
* Mon Aug 20 2018 Todd Zullinger <tmz@pobox.com> - 2.19.0-0.0
- Update to 2.19.0.rc0
* Mon Aug 20 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-2.5
- Remove git-remote-testsvn, make git-svn noarch
- Restore fixed contrib/credential/netrc tests

View File

@ -1,2 +1,2 @@
SHA512 (git-2.18.0.tar.xz) = db19363c9c2042248322d49874a27c0614acfb912183725e5d4f0331d6b44cef66a9a7da6a49bd4a17e5d86d30c5fed6bef7527f386494184595a433c4060e46
SHA512 (git-2.18.0.tar.sign) = 24826b20ce8e4e1afdb8d84b39f5914d5e29d289be31dfe9083968831294619221787e080c3a395bc105293a1184410527ac3694c465babd447791b0d019cc9b
SHA512 (git-2.19.0.rc0.tar.xz) = 02efcf54cf7e18e11954db9cefc87b381b2364647408f263ff6e51a4ad69e3251a83090137cccaac4566464bf58feceb0ae53b051b39542b739207589c9ea418
SHA512 (git-2.19.0.rc0.tar.sign) = d11e091a0946ceafe98bced0e09b1fce83e519602b959e1e37e3b70f07d1456bdebd9a55d3df9ad87fbf9699f47a9a95971a67c28a3510c6a2b278b715860ea8