Revision d17ec3a9daffd7f525f39b52011dc653afcbd275 authored by Johannes Schindelin on 18 June 2015, 16:38:44 UTC, committed by Junio C Hamano on 29 June 2015, 20:11:37 UTC
When rev-list's --cherry option does not detect that a patch has already
been applied upstream, an interactive rebase would offer to reapply it and
consequently stop at that patch with a failure, mentioning that the diff
is empty.

Traditionally, a `git rebase --continue` simply skips the commit in such a
situation.

However, as pointed out by Gábor Szeder, this leaves a CHERRY_PICK_HEAD
behind, making the Git prompt believe that a cherry pick is still going
on. This commit adds a test case demonstrating this bug.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent fdf96a2
Raw File
t4101-apply-nonl.sh
#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#

test_description='git apply should handle files with incomplete lines.

'
. ./test-lib.sh

# setup

(echo a; echo b) >frotz.0
(echo a; echo b; echo c) >frotz.1
(echo a; echo b | tr -d '\012') >frotz.2
(echo a; echo c; echo b | tr -d '\012') >frotz.3

for i in 0 1 2 3
do
  for j in 0 1 2 3
  do
    test $i -eq $j && continue
    cat frotz.$i >frotz
    test_expect_success "apply diff between $i and $j" '
	git apply <"$TEST_DIRECTORY"/t4101/diff.$i-$j &&
	test_cmp frotz.$j frotz
    '
  done
done

test_done
back to top