Paul Tan <pyokagan@xxxxxxxxx> writes: > diff --git a/t/t4153-am-resume-override-opts.sh b/t/t4153-am-resume-override-opts.sh > new file mode 100755 > index 0000000..c49457c > --- /dev/null > +++ b/t/t4153-am-resume-override-opts.sh > @@ -0,0 +1,144 @@ > +#!/bin/sh > + > +test_description='git-am command-line options override saved options' > + > +. ./test-lib.sh > + > +test_expect_success 'setup' ' > + test_commit initial file && > + test_commit first file && > + > + git checkout -b side initial && > + test_commit side-first file && > + test_commit side-second file && > + > + { > + echo "Message-Id: <side-first@xxxxxxxxxxx>" && > + git format-patch --stdout -1 side-first | sed -e "1d" > + } >side-first.patch && Hmm, puzzled... Ah, you want to make sure Message-Id comes at the very beginning, and you are going to use a single e-mail per mailbox so it is easier to strip the Beginning of Message marker than to insert Message-Id after it. I can understand what is going on. > + { > + sed -ne "1,/^\$/p" side-first.patch && sed -e "/^\$/q" would work just as well here > + echo "-- >8 --" && > + sed -e "1,/^\$/d" side-first.patch > + } >side-first.scissors && So *.scissors version has -- >8 -- inserted at the beginning of the body. > + { > + echo "Message-Id: <side-second@xxxxxxxxxxx>" && > + git format-patch --stdout -1 side-second | sed -e "1d" > + } >side-second.patch && > + { > + sed -ne "1,/^\$/p" side-second.patch && > + echo "-- >8 --" && > + sed -e "1,/^\$/d" side-second.patch > + } >side-second.scissors > +' A helper function that takes the branch name may be a good idea, not just to consolidate the implementation but as a place to document how these pairs of files are constructed and why. > +test_expect_success '--3way, --no-3way' ' > + rm -fr .git/rebase-apply && > + git reset --hard && > + git checkout first && > + test_must_fail git am --3way side-first.patch side-second.patch && > + test -n "$(git ls-files -u)" && > + echo will-conflict >file && > + git add file && > + test_must_fail git am --no-3way --continue && > + test -z "$(git ls-files -u)" > +' > + > +test_expect_success '--no-quiet, --quiet' ' > + rm -fr .git/rebase-apply && > + git reset --hard && > + git checkout first && > + test_must_fail git am --no-quiet side-first.patch side-second.patch && > + test_must_be_empty out && Where did this 'out' come from? > + echo side-first >file && > + git add file && > + git am --quiet --continue >out && > + test_must_be_empty out I can see this one, though I am not sure if it is sensible to see what the command says under --quiet option, especially if you are making sure it does not fail, which you already have checked for its exit status. > +' > + > +test_expect_success '--signoff, --no-signoff' ' > + rm -fr .git/rebase-apply && > + git reset --hard && > + git checkout first && > + test_must_fail git am --signoff side-first.patch side-second.patch && > + echo side-first >file && > + git add file && > + git am --no-signoff --continue && > + > + # applied side-first will be signed off > + echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" >expected && > + git cat-file commit HEAD^ | grep "Signed-off-by:" >actual && > + test_cmp expected actual && > + > + # applied side-second will not be signed off > + test $(git cat-file commit HEAD | grep -c "Signed-off-by:") -eq 0 > +' Hmm, the command was run with --signoff at the start, first gets applied with "am --no-signoff --resolved" so I would expect it does not get signed off, but the second one will apply cleanly on top, so shouldn't it get signed off? Or perhaps somehow I misread Peff's idea to make these override one-shot in $gmane/274635? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html