Paul Tan <pyoka...@gmail.com> 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-fi...@example.com>" &&
> +             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-sec...@example.com>" &&
> +             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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to