From: Paul Tan <pyokagan@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <johannes.schindelin@gmx.de>,
Stefan Beller <sbeller@google.com>,
Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr>,
Jeff King <peff@peff.net>, Paul Tan <pyokagan@gmail.com>
Subject: [PATCH v2 0/3] am: let command-line options override saved options
Date: Tue, 4 Aug 2015 22:05:13 +0800 [thread overview]
Message-ID: <1438697116-27799-1-git-send-email-pyokagan@gmail.com> (raw)
In-Reply-To: <20150728164311.GA1948@yoshi.chippynet.com>
Let command-line options override saved options in git-am when resuming
This is a re-roll of [v1]. Previous versions:
[v1] http://thread.gmane.org/gmane.comp.version-control.git/274789
When resuming, git-am mistakenly ignores command-line options.
For instance, when a patch fails to apply with "git am patch", subsequently
running "git am --3way" would not cause git-am to fall back on attempting a
threeway merge. This occurs because by default the --3way option is saved as
"false", and the saved am options are loaded after the command-line options are
parsed, thus overwriting the command-line options when resuming.
[PATCH 1/3] tweaks test-terminal.perl to redirect the stdin of the child
process to a pty. This is to support the tests in [PATCH 2/3].
[PATCH 2/3] fixes builtin/am.c, enabling command-line options to override saved
options. However, even with this patch, the following command-line options have
no effect when resuming:
* --signoff overriding --no-signoff
* --no-keep overriding --keep
* --message-id overriding --no-message-id
* --scissors overriding --no-scissors
This is because they are only taken into account during the mail-parsing stage,
which is skipped over when resuming.
[PATCH 3/3] adds support for the --signoff option when resuming by recognizing
that we can (re-)append the signoff when the user explicitly specifies the
--signoff option.
Since the --keep, --message-id and --scissors options are handled by
git-mailinfo, it is tricky to implement support for them without introducing
lots of code complexity, and thus this patch series does not attempt to.
Furthermore, it is hard to imagine a use case for e.g. --scissors overriding
--no-scissors, and hence it might be preferable to wait until someone comes
with a solid use case, instead of implementing potentially undesirable behavior
and having to support it.
Paul Tan (3):
test_terminal: redirect child process' stdin to a pty
am: let command-line options override saved options
am: let --signoff override --no-signoff
builtin/am.c | 42 ++++++++++++---
t/t4153-am-resume-override-opts.sh | 102 +++++++++++++++++++++++++++++++++++++
t/test-terminal.perl | 25 +++++++--
3 files changed, 158 insertions(+), 11 deletions(-)
create mode 100755 t/t4153-am-resume-override-opts.sh
--
2.5.0.280.gd88bd6e
next prev parent reply other threads:[~2015-08-04 14:07 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
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 ` Paul Tan [this message]
2015-08-04 21:12 ` [PATCH v2 0/3] " 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1438697116-27799-1-git-send-email-pyokagan@gmail.com \
--to=pyokagan@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmx.de \
--cc=peff@peff.net \
--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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.