From: Junio C Hamano <gitster@pobox.com>
To: Paul Tan <pyokagan@gmail.com>
Cc: Jeff King <peff@peff.net>,
Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>,
Git List <git@vger.kernel.org>,
Stefan Beller <sbeller@google.com>,
Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: Re: [PATCH] am: let command-line options override saved options
Date: Tue, 28 Jul 2015 10:09:59 -0700 [thread overview]
Message-ID: <xmqqegjsfbtk.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <20150728164311.GA1948@yoshi.chippynet.com> (Paul Tan's message of "Wed, 29 Jul 2015 00:43:11 +0800")
Paul Tan <pyokagan@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-first@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-second@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?
next prev parent reply other threads:[~2015-07-28 17:10 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-24 17:48 "git am" and then "git am -3" regression? Junio C Hamano
2015-07-24 18:09 ` Jeff King
2015-07-26 5:03 ` Paul Tan
2015-07-26 5:21 ` Jeff King
2015-07-27 8:09 ` Matthieu Moy
2015-07-27 8:32 ` Jeff King
2015-07-27 14:21 ` Junio C Hamano
2015-07-28 16:43 ` [PATCH] am: let command-line options override saved options Paul Tan
2015-07-28 16:48 ` Junio C Hamano
2015-07-28 17:09 ` Junio C Hamano [this message]
2015-07-31 10:58 ` Paul Tan
2015-07-31 16:04 ` Junio C Hamano
2015-08-01 0:59 ` Paul Tan
2015-08-04 14:05 ` [PATCH v2 0/3] " Paul Tan
2015-08-04 21:12 ` Junio C Hamano
2015-08-04 14:08 ` Paul Tan
2015-08-04 14:08 ` [PATCH v2 1/3] test_terminal: redirect child process' stdin to a pty Paul Tan
2015-08-06 22:15 ` Eric Sunshine
2015-08-12 4:16 ` Paul Tan
2015-08-04 14:08 ` [PATCH v2 2/3] am: let command-line options override saved options Paul Tan
2015-08-04 14:08 ` [PATCH v2 3/3] am: let --signoff override --no-signoff Paul Tan
2015-08-07 9:29 ` Johannes Schindelin
2015-08-12 3:06 ` Paul Tan
2015-08-12 3:07 ` Paul Tan
2015-08-05 15:41 ` [PATCH v2 0/3] am: let command-line options override saved options Junio C Hamano
2015-08-05 17:51 ` Paul Tan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqegjsfbtk.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
--cc=peff@peff.net \
--cc=pyokagan@gmail.com \
--cc=remi.lespinet@ensimag.grenoble-inp.fr \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).