t5520: verify that pull --rebase
shows the helpful advice when failing
It was noticed by Brendan Forster last October that the builtin `git am` regressed on that. Our hot fix reverted to spawning the recursive merge instead of using it as a library function. As we are about to revert that hot fix, after making the recursive merge a true library function (i.e. a function that does not die() in case of "normal" errors), let's add a test that verifies that we do not regress on the same problem which made the hot fix necessary in the first place. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8c6d1f9807
commit
3be18b47e4
@ -255,6 +255,38 @@ test_expect_success '--rebase' '
|
||||
test new = "$(git show HEAD:file2)"
|
||||
'
|
||||
|
||||
test_expect_success '--rebase with conflicts shows advice' '
|
||||
test_when_finished "git rebase --abort; git checkout -f to-rebase" &&
|
||||
git checkout -b seq &&
|
||||
test_seq 5 >seq.txt &&
|
||||
git add seq.txt &&
|
||||
test_tick &&
|
||||
git commit -m "Add seq.txt" &&
|
||||
echo 6 >>seq.txt &&
|
||||
test_tick &&
|
||||
git commit -m "Append to seq.txt" seq.txt &&
|
||||
git checkout -b with-conflicts HEAD^ &&
|
||||
echo conflicting >>seq.txt &&
|
||||
test_tick &&
|
||||
git commit -m "Create conflict" seq.txt &&
|
||||
test_must_fail git pull --rebase . seq 2>err >out &&
|
||||
grep "When you have resolved this problem" out
|
||||
'
|
||||
|
||||
test_expect_success 'failed --rebase shows advice' '
|
||||
test_when_finished "git rebase --abort; git checkout -f to-rebase" &&
|
||||
git checkout -b diverging &&
|
||||
test_commit attributes .gitattributes "* text=auto" attrs &&
|
||||
sha1="$(printf "1\\r\\n" | git hash-object -w --stdin)" &&
|
||||
git update-index --cacheinfo 0644 $sha1 file &&
|
||||
git commit -m v1-with-cr &&
|
||||
# force checkout because `git reset --hard` will not leave clean `file`
|
||||
git checkout -f -b fails-to-rebase HEAD^ &&
|
||||
test_commit v2-without-cr file "2" file2-lf &&
|
||||
test_must_fail git pull --rebase . diverging 2>err >out &&
|
||||
grep "When you have resolved this problem" out
|
||||
'
|
||||
|
||||
test_expect_success '--rebase fails with multiple branches' '
|
||||
git reset --hard before-rebase &&
|
||||
test_must_fail git pull --rebase . copy master 2>err &&
|
||||
|
Loading…
Reference in New Issue
Block a user