From: Jasper Mayone <me@jaspermayone.com>
To: gitster@pobox.com
Cc: ben.knoble@gmail.com, git@vger.kernel.org,
gitgitgadget@gmail.com, haraldnordgren@gmail.com,
kristofferhaugsbakk@fastmail.com, phillip.wood123@gmail.com
Subject: Re: [PATCH v2 0/2] branch: let --delete-merged find squash merged branches
Date: Mon, 19 Oct 2026 00:40:05 -0400 [thread overview]
Message-ID: <20261019044005.99247-1-me@jaspermayone.com> (raw)
In-Reply-To: <xmqqy0c21gq1.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
> Stepping back a bit, perhaps "--delete-merged" should not be
> modified to touch anything that was rebased, cherry-picked, or
> squash merged. It is good to have one stable and strict "if my
> commits were merged and safely saved there, delete them from here",
> regardless of how much looser definition of "the same patch" is used
> for "--delete-irrelevant".
I am in the group of users this series is for. Most repositories I
work in land pull requests with GitHub's "Squash and merge". I built
v2 (ec88bde252) and tested it on generated repositories. The results
support keeping the strict meaning as the default.
v2 did what it says for squash merges, GitHub-style squashes with a
new message and committer, rebase merges, renames, and squashes that
were later reverted. "landed as" named the correct commit every
time. It kept a branch whose work only partly landed.
But it also deleted a branch that was never merged. Another author
had made the same change upstream in an unrelated commit, and v2
reported the branch as "landed as" that commit. That is the
"irrelevant" case from your message, and today v2 handles it the same
way as a squash merge of my own work.
So I agree that the strict meaning should stay the default. I also
want to turn the looser check on once per repository and then forget
about it. Something close to what Ben suggested earlier would do
that:
git branch --delete-merged origin/main --landed=squash
plus a config variable for the default. A third kind of integration
then becomes one more value, not one more --no-<kind> option.
On speed: with 3056 commits and 80 branches, v2 took 0.078s against
0.030s for 2.56.0, and --no-squashed brought it back to 0.030s. In a
blobless clone the first run took 0.42s and fetched 13 blobs.
--no-squashed fetched none.
One more point. A branch checked out in a worktree is skipped with no
message, but a branch with deleteMerged=false prints "Skipping". I
keep one worktree per pull request, so most of my merged branches
are skipped silently. A "Skipping 'topic' (checked out in <path>)"
line would help. I plan to send a separate RFC for
"git worktree list --merged", so it would also help if the "has this
branch landed?" check were a helper that worktree code can call.
Tested-by: Jasper Mayone <me@jaspermayone.com>
Thanks,
Jasper
next prev parent reply other threads:[~2026-10-19 4:40 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 7:30 [PATCH] branch: let --delete-merged find squash merged branches Harald Nordgren via GitGitGadget
2026-09-29 7:46 ` Kristoffer Haugsbakk
2026-09-29 7:52 ` Harald Nordgren
2026-09-29 8:08 ` Kristoffer Haugsbakk
2026-09-29 11:18 ` D. Ben Knoble
2026-09-29 13:31 ` Kristoffer Haugsbakk
2026-09-29 11:26 ` D. Ben Knoble
2026-09-29 13:44 ` Harald Nordgren
2026-09-29 13:52 ` Harald Nordgren
2026-09-29 15:28 ` D. Ben Knoble
2026-09-29 18:34 ` Harald Nordgren
2026-10-04 9:54 ` Phillip Wood
2026-10-04 22:28 ` Harald Nordgren
2026-10-08 15:25 ` Phillip Wood
2026-10-08 18:42 ` Harald Nordgren
2026-10-09 8:16 ` Kristoffer Haugsbakk
2026-10-09 11:11 ` Harald Nordgren
2026-10-09 11:18 ` Harald Nordgren
2026-10-09 13:40 ` Phillip Wood
2026-10-09 13:37 ` Phillip Wood
2026-10-09 15:27 ` Harald Nordgren
2026-10-08 17:51 ` D. Ben Knoble
2026-10-09 13:34 ` Phillip Wood
2026-10-11 9:41 ` [PATCH v2 0/2] " Harald Nordgren via GitGitGadget
2026-10-11 9:41 ` [PATCH v2 1/2] " Harald Nordgren via GitGitGadget
2026-10-11 9:41 ` [PATCH v2 2/2] branch: add --no-squashed to skip the squash search Harald Nordgren via GitGitGadget
2026-10-12 0:30 ` [PATCH v2 0/2] branch: let --delete-merged find squash merged branches Junio C Hamano
2026-10-12 9:50 ` Phillip Wood
2026-10-12 14:31 ` Harald Nordgren
2026-10-12 16:50 ` Junio C Hamano
2026-10-12 17:44 ` Harald Nordgren
2026-10-13 2:23 ` Junio C Hamano
2026-10-17 22:23 ` Harald Nordgren
2026-10-19 4:40 ` Jasper Mayone [this message]
2026-10-18 15:09 ` Harald Nordgren
2026-10-12 12:41 ` Harald Nordgren
2026-10-12 15:49 ` D. Ben Knoble
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=20261019044005.99247-1-me@jaspermayone.com \
--to=me@jaspermayone.com \
--cc=ben.knoble@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=haraldnordgren@gmail.com \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=phillip.wood123@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox