I have report this bug to upstream:

https://lore.kernel.org/git/20220424064730.fdhrgkkkegxbnn3l@kong-HP/T/#m9cbb6a73be2d40f2e14a9dde8703dd8a116c1024

Here are steps of what I am doing:

First, I created two commits to a demo project.

when I use command:

1
git format-patch --cover-letter -1

cat 0000-cover-letter.patch

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
From 2e62ef46d5627319c4cb11be81079e3364fca40c Mon Sep 17 00:00:00 2001
From: FanJun Kong <bh1scw@gmail.com>
Date: Sun, 24 Apr 2022 14:31:45 +0800
Subject: [PATCH 0/1] *** SUBJECT HERE ***

*** BLURB HERE ***

FanJun Kong (1):
  Second commit.

   1.c | 4 ++++
   1 file changed, 4 insertions(+)

--
2.32.0 (Apple Git-132)

ok, you can see the cover letter has diffstat, just above “–”.

Then I change command to:

1
git format-patch --cover-letter -2

cat 0000-cover-letter.patch

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
From 2e62ef46d5627319c4cb11be81079e3364fca40c Mon Sep 17 00:00:00 2001
From: FanJun Kong <bh1scw@gmail.com>
Date: Sun, 24 Apr 2022 14:34:48 +0800
Subject: [PATCH 0/2] *** SUBJECT HERE ***

*** BLURB HERE ***

FanJun Kong (2):
  First commit.
  Second commit.

--
2.32.0 (Apple Git-132)

Okay, you can see the diffstat is missing this time.

From: Eric Sunshine replay:

This is expected behavior according to this code in make_cover_letter() in builtin/log.c:

/* We can only do diffstat with a unique reference point */
if (origin)
    show_diffstat(rev, origin, head);

The problem is that when you format both patches of a two-commit repository, origin is NULL because there is no commit preceding the initial commit; the initial commit is the root of the history. Thus, there is nothing prior to the first patch against which to create a diffstat.

Hope this can be fix later.