git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: pbonzini@redhat.com
To: git@vger.kernel.org
Cc: sunshine@sunshineco.com
Subject: [PATCH v2 0/5] am: provide a replacement for "cat .git/rebase-apply/patch"
Date: Thu, 20 Feb 2020 15:15:14 +0100	[thread overview]
Message-ID: <20200220141519.28315-1-pbonzini@redhat.com> (raw)

From: Paolo Bonzini <pbonzini@redhat.com>

When "git am --show-current-patch" was added in commit 984913a210 ("am:
add --show-current-patch", 2018-02-12), "git am" started recommending it
as a replacement for .git/rebase-merge/patch.  Unfortunately the suggestion
is misguided; for example, the output "git am --show-current-patch" cannot
be passed to "git apply" if it is encoded as quoted-printable or base64.

This series adds a new mode to "git am --show-current-patch" in order to
straighten the suggestion.  "--show-current-patch" grows an optional
argument, where the default behavior can now also be obtained with
"--show-current-patch=raw" and ".git/rebase-apply/patch" can be retrieved
with "--show-current-patch=diff".

This requires a little surgery in patches 1 and 2 in order to convert
--show-current-patch from OPTION_CMDMODE to OPTION_CALLBACK.  After this,
the last two patches implement the new syntax and feature.

Thanks,

Paolo

v1->v2: - split testcases to a separate patch [Junio]
	- improve commit messages [Junio]
	- fix spacing in designated initializer [Junio]
	- use test_i18ngrep [Eric]
	- replace abort with BUG [Eric]
	- replace "diff|raw" with "(diff|raw)" in docs and help [Eric]
	- improve docs wording [Eric]

Paolo Bonzini (5):
  parse-options: add testcases for OPT_CMDMODE()
  parse-options: convert "command mode" to a flag
  am: convert "resume" variable to a struct
  am: support --show-current-patch=raw as a synonym
    for--show-current-patch
  am: support --show-current-patch=diff to retrieve
    .git/rebase-apply/patch

 Documentation/git-am.txt               | 10 +--
 builtin/am.c                           | 96 ++++++++++++++++++++------
 contrib/completion/git-completion.bash |  5 ++
 parse-options.c                        | 20 +++---
 parse-options.h                        |  8 +--
 t/helper/test-parse-options.c          |  2 +
 t/t0040-parse-options.sh               | 18 +++++
 t/t4150-am.sh                          | 20 ++++++
 8 files changed, 140 insertions(+), 39 deletions(-)

-- 
2.21.1


             reply	other threads:[~2020-02-20 14:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20 14:15 pbonzini [this message]
2020-02-20 14:15 ` [PATCH v2 1/5] parse-options: add testcases for OPT_CMDMODE() pbonzini
2020-02-20 14:15 ` [PATCH v2 2/5] parse-options: convert "command mode" to a flag pbonzini
2020-02-20 14:15 ` [PATCH v2 3/5] am: convert "resume" variable to a struct pbonzini
2020-02-20 14:15 ` [PATCH v2 4/5] am: support --show-current-patch=raw as a synonym for--show-current-patch pbonzini
2020-02-20 14:15 ` [PATCH v2 5/5] am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch pbonzini

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=20200220141519.28315-1-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=git@vger.kernel.org \
    --cc=sunshine@sunshineco.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).