#!/bin/sh test_description='am --interactive tests' . ./test-lib.sh test_expect_success 'set up patches to apply' ' test_commit unrelated && test_commit no-conflict && test_commit conflict-patch file patch && git format-patch --stdout -2 >mbox && git reset --hard unrelated && test_commit conflict-main file main base ' # Sanity check our setup. test_expect_success 'applying all patches generates conflict' ' test_must_fail git am mbox && echo resolved >file && git add -u && git am --resolved ' test_expect_success 'interactive am can apply a single patch' ' git reset --hard base && # apply the first, but not the second test_write_lines y n | git am -i mbox && echo no-conflict >expect && git log -1 --format=%s >actual && test_cmp expect actual ' test_expect_success 'interactive am can resolve conflict' ' git reset --hard base && # apply both; the second one will conflict test_write_lines y y | test_must_fail git am -i mbox && echo resolved >file && git add -u && # interactive "--resolved" will ask us if we want to apply the result echo y | git am -i --resolved && echo conflict-patch >expect && git log -1 --format=%s >actual && test_cmp expect actual && echo resolved >expect && git cat-file blob HEAD:file >actual && test_cmp expect actual ' test_done