git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [Proposal] git am --check

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 3, 2019, 18:16 UTC
Message-ID
<xmqqblzev8jw.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CACsJy8CUGfUwi15+ggOgRT4xotCkJVhGtCrjMa=4pdnDq25f4A@mail.gmail.com>
Duy Nguyen <pclouds@gmail.com> writes:
Show 20 quoted lines
> On Mon, Jun 3, 2019 at 4:29 PM Christian Couder
> <christian.couder@gmail.com> wrote:
>>
>> On Sun, Jun 2, 2019 at 7:38 PM Drew DeVault <sir@cmpwn.com> wrote:
>> >
>> > This flag would behave similarly to git apply --check, or in other words
>> > would exit with a nonzero status if the patch is not applicable without
>> > actually applying the patch otherwise.
>>
>> `git am` uses the same code as `git apply` to apply patches, so there
>> should be no difference between `git am --check` and `git apply
>> --check`.
>
> One difference (that still annoys me) is "git apply" must be run at
> topdir. "git am" can be run anywhere and it will automatically find
> topdir.
>
> "git am" can also consume multiple patches, so it's some extra work if
> we just use "git apply" directly, although I don't think that's a very
> good argument for "am --check".

Another is that "am" has preprocessing phase performed by mailsplit that deals with MIME garbage, which "apply" will totally choke on without even attempting to cope with.

I haven't carefully read the "proposal" or any rfc patches yet, but would/should the command make a commit if the patch cleanly applies?

I wonder if a "--dry-run" option is more useful (i.e. checks and reports with the exit status *if* the command without "--dry-run" would cleanly succeed, but never makes a commit or touches the index or the working tree), given the motivating use case is a Git aware MUA that helps the user by saying "if you are busy you could perhaps skip this message as the patch would not apply to your tree anyway".

Previous: Duy Nguyen
Message 4 of 4 in “[Proposal] git am --check”
  1. Drew DeVaultJun 2, 2019
  2. Christian CouderJun 3, 2019
  3. Duy NguyenJun 3, 2019
  4. Junio C HamanoJun 3, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.